从按钮执行 segue 时应用程序冻结
Posted
技术标签:
【中文标题】从按钮执行 segue 时应用程序冻结【英文标题】:App freezes when segue performed from button 【发布时间】:2013-10-08 01:01:57 【问题描述】:我的故事板中有一个按钮,它显示了一个带有模态转场的视图控制器。每次按下此按钮,应用程序都会冻结(没有崩溃,也没有错误消息)。 prepareForSegue
被调用,所有应该存在的视图控制器都在 prepareForSegue
的代码中,但它们不会出现在屏幕上。我可以从同一个按钮模态切换到另一个视图控制器就好了。关于为什么会发生这种情况或如何解决它的任何想法?
我尝试过的事情:
-
删除按钮或使用其他按钮
在 IB 中重新创建 segue
【问题讨论】:
你能显示一些代码吗? 你想看什么代码?所有这一切都是在 IB 控制拖动 segues 中完成的。 @Kevin 你能发布你的准备方法吗? 我只是在那里放了一个断点并 po'd segue.destinationViewController 以确认正在创建视图控制器。 【参考方案1】:终于让 Xcode 给我一条错误信息...原来我已经完成了
if (self == [super init])
我应该什么时候完成
if (self = [super init])
导致各种内存问题。
【讨论】:
为此我想看看你的代码 :) 有时是小错误,会破坏所有应用程序 然而,这是一个不好的做法,因为使用==
太容易了(正如您发现的困难方法),因为您看到它位于if
中。更好的是明确地打破它,比如self = [super init]; if (self) ...
。
不会将 "==" 更改为 "=" 使 if 语句始终返回 true 吗?
只有超级初始化成功才会返回true。这基本上是 Obj-C 处理可失败初始化程序的方式。 if 语句防止在 super 调用为 nil 时为实例变量分配内存。【参考方案2】:
我在 ios 9 中遇到了类似的问题,该问题通过未在故事板中的 UITextViews 中设置任何文本来解决,这些文本位于目标视图控制器中...很奇怪,但它已解决!
iOS 9 Segue Causes App To Freeze (no crash or error thrown)
【讨论】:
以上是关于从按钮执行 segue 时应用程序冻结的主要内容,如果未能解决你的问题,请参考以下文章