iOS 9 Segue导致应用程序冻结(没有崩溃或错误抛出)

时间:2015-09-18 04:14:02

标签: ios uiviewcontroller segue swift2 uistoryboardsegue

我已经在这个应用程序上工作了好几个月,从我记忆中来看,我从来没有遇到过segue的问题。在调用performSegueWithIdentifier方面,代码没有变化,但自从我最近更新到Xcode 7和iOS 9后,我无法解决这个问题。

我试过了:

  • 删除按钮并创建带有segue链接的新按钮
  • 使用直接按钮来查看,而不使用performSegueWithIdentifier
  • 将按钮连接到新的空白viewController

当我按下按钮时,目标VC上没有调用初始加载功能(例如:ViewDidLoadViewWillAppear等)。当我将它连接到空白视图时,segue可以正常使用相同的代码。

由于代码永远不会停止或中断,而且似乎只是#"冻结"在仍然在Xcode上运行时,我似乎甚至无法将其缩小到导致问题的原因。我有一个类似的segue,也可以从同一个ViewController上的另一个按钮调用,它没有任何问题。

对此事的任何想法都非常感谢!

编辑:我已将问题缩小到UITextView导致问题的范围。一旦删除了文本视图,页面就会通过segue加载。我想知道iOS {8}和iOS 9之间在UITextView方面有什么变化,因为我必须删除文本视图并完全重新添加新的文本视图。

6 个答案:

答案 0 :(得分:29)

所以基本上segue因为我在UITextView中使用的destinationViewController而冻结了。以下解决了这个问题:

  • 删除所有UITextView
  • 添加新的UITextView
    • 您必须保留默认的lorem强制文本,并在viewDidLoad()
    • 中以编程方式更改

这是我的修复,从我在这个问题上所做的研究来看,这似乎是iOS 9和Xcode 7中的一个错误。

干杯!

注意:删除UITextView中的文本(或使其长度超过12个字符)足以解决它,无需删除和重新创建它们。 这在Xcode 7.1.1及更高版本中得到修复。

答案 1 :(得分:0)

我遇到了同样的问题,这篇文章中的修正案(Xcode 7 crash: [NSLocalizableString length] 30000)为我解决了这个问题。

首先是启用故事板基础以外的本地化(参见https://stackoverflow.com/a/32688815/3718974

第二种是关闭基本定位(参见https://stackoverflow.com/a/32719247/3718974

答案 2 :(得分:0)

我认为我遇到了同样的问题:我有一个UITabelView,其中包含从nib文件创建的单元格,当用户点击一个单元格调用此方法时:

enter image description here

当我有以下方法prepareForSegue ::应用程序崩溃: enter image description here

如果我删除行129一切正常,方法prepareForSegue ::打开右视图,标签contactName以默认文本显示。 如果我修改方法如下,prepareForSegue :: get完全符合你的期望,没有任何类型的错误:

enter image description here

如果您也得到相同的结果,请告诉我

答案 3 :(得分:0)

任何正面临这个问题的人,我通过关闭模拟器窗口调试中的“优化渲染窗口缩放”选项解决了这个问题。我已经尝试过所有上述答案,但无法解决问题。

答案 4 :(得分:0)

在你激活segue的第一个viewController中的方法中,你在任何地方都有beginIgnoringInteractionEvents吗?如果是这样,您所选择的屏幕将被冻结,并将忽略您描述的交互事件。如果是这种情况,您可以通过在segue方法之前添加endIgnoringInteractionEvents方法来解决此问题:

UIApplication.sharedApplication()。endIgnoringInteractionEvents()                                 self.performSegueWithIdentifier(“editItemToMyGearSegue”,sender:self)

答案 5 :(得分:0)

我意识到这是一个古老的话题,但似乎仍然具有相关性。我在Xcode 9,iOS11中遇到了同样的问题。我的UITextViews嵌入在UITableViewCells中。与此处描述的症状相同。默认文本和占位符的技巧对我没有任何作用,但我通过关闭xib中文本视图的滚动指示符来解决它。我猜,默认情况下它们是未使用的。

编辑:这可能是一个重要的细节...所有悬挂的视图都在文本视图的属性字符串中有一个图像NSTextAttachment。我认为图像比可用的表格单元格内容更宽。滚动关闭时,它们似乎会缩小。

相关问题