Segue导致应用程序冻结(没有崩溃或错误抛出)
我已经在这个应用程序上工作了好几个月了,从我记忆中来说,我从来没有遇到过一个问题。 代码在调用performSegueWithIdentifier
方面是不变的,但自从我最近更新到Xcode 7和iOS 9之后,我一直无法解决这个问题。
我努力了:
- 删除button和创build新的buttonw / segue链接
- 使用从button直接segue查看,而不使用
performSegueWithIdentifier
- 将button连接到新的空白viewController
当我按下button时,目标VC上不会调用初始加载函数(例如: ViewDidLoad
, ViewWillAppear
等)。 当我将它连接到一个空白的视图,segue工作正常,在相同的代码。
由于代码永远不会停止或中断,而只是似乎“冻结”,而仍然在Xcode上运行,我似乎甚至不能缩小到这个问题导致的问题。 我有一个类似的segue,也从同一个ViewController的其他button调用,没有任何问题。
对此事的任何想法都非常感激!
编辑:我已经缩小到UITextView
导致问题的问题。 一旦文本视图被删除的页面加载罚款通过segue。 我不知道iOS 8和iOS 9之间在UITextView
方面有什么变化,因为我将不得不删除文本视图,并完全重新添加新的文本视图。
所以基本上segue是冻结的,因为UITextView
是我在destinationViewController
中使用的。 以下解决了这个问题:
- 删除所有
UITextView
的 - 添加新的UITextView的
- 你必须保留默认的lorem施加的文本,并在
viewDidLoad()
中以编程方式改变它。
- 你必须保留默认的lorem施加的文本,并在
这是我的修复,从我在这个问题上的研究,似乎这是在iOS 9和Xcode 7中的错误。
干杯!
注意:删除UITextView中的文本(或使其长度大于12个字符)足以解决这个问题,不需要删除和重新创build它们。 这在Xcode 7.1.1及更高版本中是固定的。
我遇到了同样的问题,并在这篇文章( Xcode 7崩溃:[NSLocalizableString长度] 30000 )修复解决了我的问题。
首先是启用故事板以外的本地化(请参阅https://stackoverflow.com/a/32688815/3718974 )
其次是closures基本本地化(请参阅https://stackoverflow.com/a/32719247/3718974 )
我觉得我有同样的问题:我有一个UITabelView的单元格创build从一个nib文件,当用户点击一个单元格这个方法被称为:
当我有以下方法prepareForSegue ::应用程序崩溃:
如果我删除第129行一切正常,方法prepareForSegue ::打开正确的视图和标签contactName显示其默认文本。 如果我修改方法如下prepareForSegue ::得到你所期望的,没有任何types的错误:
让我知道你是否也得到相同的结果
任何一个面临这个问题的人,我通过closures模拟器窗口debugging中的“优化渲染窗口的比例”选项来解决这个问题。 我已经尝试了所有上述的答案,但不能解决问题。
在第一个viewController的方法中,你激活了segue,你有beginIgnoringInteractionEvents在任何地方吗? 如果是这样的话,你屏蔽的屏幕将被冻结,并将忽略你所描述的交互事件。 如果是这种情况,你可以通过在你的segue方法之前添加一个endIgnoringInteractionEvents方法来解决这个问题:
UIApplication.sharedApplication()。endIgnoringInteractionEvents()self.performSegueWithIdentifier(“editItemToMyGearSegue”,sender:self)
我意识到这是一个老话题,但似乎仍然相关。 我在Xcode 9,iOS11中遇到了同样的问题。 我的UITextViewsembedded在UITableViewCells内部。 这里描述的症状相同。 具有默认文本和占位符的技巧对我没有任何帮助,但我通过closuresxib中文本视图的滚动指示器来解决这个问题。 他们默认情况下,我想,虽然没有使用。
编辑:这可能是一个重要的细节…悬挂的意见都有一个图像NSTextAttachment文本视图的属性string。 我认为图像比可用的表格单元格内容更宽。 随着滚动closures,他们似乎下调。