我开发这个应用程序已经有几个月了,从我记事起,我从来没有遇到过segues的问题。代码在调用performSegueWithIdentifier
方面没有变化,但自从我最近更新到Xcode 7和iOS 9以来,我一直无法解决这个问题。
我试过:
- 删除按钮并创建新按钮(带segue链接)
- 使用从按钮到视图的直接segue,而不使用
performSegueWithIdentifier
- 将按钮连接到新的空白视图控制器
当我按下按钮时,目标VC上没有调用初始加载函数(例如:ViewDidLoad
,ViewWillAppear
等)。当我将它连接到一个空白视图时,segue在相同的代码到位的情况下工作得很好。
由于代码从未停止或中断,而且似乎只是在Xcode上运行时“冻结”在原地,我似乎甚至无法将其缩小到导致问题的原因。我有一个类似的segue,也是从同一个ViewController上的另一个按钮调用的,没有任何问题。
对此事的任何想法都非常感谢!
**编辑:**我已经将问题缩小到UITextView
导致的问题。一旦文本视图被删除,页面通过segue加载良好。我想知道iOS 8和iOS 9之间在UITextView
方面有什么变化,因为我将不得不删除文本视图并完全重新添加新的文本视图。
6条答案
按热度按时间q9yhzks01#
所以基本上segue是冻结的,因为我在
destinationViewController
中使用的UITextView
的。下面修复了这个问题:UITextView
viewDidLoad()
中以编程方式更改它这就是我的修复程序,从我对这个问题所做的研究来看,这似乎是iOS 9和Xcode 7中的一个bug。
干杯干杯干杯
**注:**移除UITextView中的文本(或使其长度超过12个字符)就足以解决此问题,无需删除并重新创建它们。Xcode 7.1.1及更高版本中已修复此问题。
t5fffqht2#
我遇到了同样的问题,这篇文章中的修复程序(Xcode 7 crash: [NSLocalizableString length] 30000)为我解决了这个问题。
第一种是启用本地化,而不是故事板的基础(请参阅https://stackoverflow.com/a/32688815/3718974)
第二种方法是关闭基本本地化(请参阅https://stackoverflow.com/a/32719247/3718974)
oknwwptz3#
我想我也有同样的问题:我有一个UITabelView,其中的单元格是从nib文件创建的,当用户点击一个单元格时,此方法被调用:
并且当我使用以下方法prepareForSegue::应用程序崩溃:
如果我删除第129行“一切正常”,则方法prepareForSegue::打开右边的视图,标签contactName和它的默认文本一起显示。得到您所期望的结果,而不会出现任何类型的错误:
如果你也得到同样的结果,请告诉我
pengsaosao4#
任何一个人谁是面临这个问题,我解决了它关闭“优化渲染窗口规模”选项调试的模拟器窗口。我已经尝试了上述所有答案,但无法解决这个问题。
qni6mghb5#
在激活segue的第一个viewController中的方法中,是否有beginIgnoringInteractionEvents?如果有,则segue所指向的屏幕将被冻结,并将忽略您所描述的交互事件。如果是这种情况,则可以通过在segue方法之前添加endIgnoringInteractionEvents方法来修复此问题:
用户界面应用程序.共享应用程序().结束忽略交互事件()自身.执行带有标识符的片段(“编辑项目到我的齿轮片段”,发送者:自我)
hc2pp10m6#
我意识到这是一个老主题,但似乎仍然相关。我在Xcode 9和iOS11中也遇到过同样的问题。我的UITextViews嵌入在UITableViewCells中。与这里描述的症状相同。使用默认文本和占位符的技巧对我没有任何帮助,但我通过关闭xib中文本视图的滚动指示器来解决它。我猜它们在默认情况下是打开的,尽管没有使用。
编辑:这可能是一个重要的细节...挂起的视图都在文本视图的属性字符串中有一个图像NSTextAttachment。我认为图像比可用的表格单元格内容宽。关闭滚动后,它们看起来缩小了。