草庐IT

ios - UIAlertController 按钮代表不会触发(在 Modally Segue 中)

coder 2023-09-07 原文

我正在使用带有两个按钮的非常基本的 UIAlertController 设置。

    var alert = UIAlertController(title: "Leave player?",
        message: "You will not be able to return to this routine after!",
        preferredStyle: .Alert)


    let cancelAction: UIAlertAction = UIAlertAction(title: "Continue", style: .Cancel) { action -> Void in
        println("here")
    }
    let deleteAction: UIAlertAction = UIAlertAction(title: "Leave", style: .Default) { action -> Void in
        println("here")
    }

    alert.addAction(cancelAction)
    alert.addAction(deleteAction)

    self.presentViewController(alert, animated: true, completion: nil)

这段代码在同一个 View 上工作,带有来自程序不同部分的推送转场。结构在哪里:

(MainView) -push> (View1) -push> (View2) -push> (ThisView)

现在 AlertController 弹出窗口和按钮返回简单的文本输出。

但在以下情况下,AlertController 弹出窗口但单击按钮不返回任何内容,我的断点从未触发或只是检查控制台的文本输出不返回任何内容。

(MainView) -modal> (ThisView)

当然,我尝试将第二种情况下的 segue 设置为推送 segue,但它并没有改变任何东西。 因此,为了避免错误,AlertController 会弹出,但按钮根本没有响应。我可以另选代表吗?

现在,我花了一整天的时间来搞定一些简单的工作。我已经尝试过大多数技巧,例如延迟或异步 block 。

现在我有点不想尝试了。所以请有人告诉我我做错了什么:)

更新

将 MainView 嵌入导航 Controller 将 segue 更改为 Push segue,使按钮按下响应。 添加一个导航 Controller 来解决这个问题是我可以考虑的,但我想保留 Modal segue 的动画。 有什么想法吗?

临时解决方案

现在我将使用 push segue 和导航 Controller 来解决这个问题。这不是最佳的,因为这个 View 应该表现为弹出窗口而不是像 segue 那样的推送,但它有效。

最佳答案

我无法从您列出的代码中看出多少,但我以前遇到过类似的问题,原因是某些东西在我预期之前被解除分配,因此从未收到它的消息。

我发现的最佳解决方案是启用 NSZombies。当您的操作消息被发送到已释放的实例时,Xcode 会告诉您。请参阅此答案以了解如何启用(使用 Xcode 4.1 或更高版本的方法): https://stackoverflow.com/a/5387006/2194039

如果您不想使用 NSZombies,请尝试将其放入您的每个 VC 或其他相关类中:

deinit {
    println("This instance is deallocating")
}

我知道这只是一个笼统的想法,没有什么具体的,但这以前对我有帮助。

关于ios - UIAlertController 按钮代表不会触发(在 Modally Segue 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081651/

有关ios - UIAlertController 按钮代表不会触发(在 Modally Segue 中)的更多相关文章

  1. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  2. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  3. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  4. ruby-on-rails - Rails - 乐观锁定总是触发 StaleObjectError 异常 - 2

    我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd

  5. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  6. ruby-on-rails - 如何在 Rails Controller Action 上触发 Facebook 像素 - 2

    我有一个ruby​​onrails应用程序。我按照facebook的说明添加了一个像素。但是,要跟踪转化,Facebook要求您将页面置于达到预期结果时出现的转化中。即,如果我想显示客户已注册,我会将您注册后转到的页面作为成功对象进行跟踪。我的问题是,当客户注册时,在我的应用程序中没有登陆页面。该应用程序将用户带回主页。它在主页上显示了一条消息,所以我想看看是否有一种方法可以跟踪来自Controller操作而不是实际页面的转化。我需要计数的Action没有页面,它们是ControllerAction。是否有任何人都知道的关于如何执行此操作的gem、文档或最佳实践?这是进入布局文件的像素

  7. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  8. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  9. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

    我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

  10. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

随机推荐