Lar*_*610 6 exception ios autolayout
我的应用程序启动了一个主菜单,它是被UIViewController调用的自定义子类LVSMainViewController.它嵌入在UINavigationController故事板中设置为初始VC的a中.LVSMainViewController实施-viewDidLayoutSubviews.
点击按钮会将用户带到应用程序的不同部分(不同的VC).用户通过连接到推送segue的按钮返回主菜单.但是,当应用程序再次加载主菜单VC时,它会崩溃并显示以下消息:
2014-08-28 16:11:14.122*断言失败 - [UIView layoutSublayersOfLayer:],/ SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8803
2014-08-28 16:11:14.257*由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'将-viewDidLayoutSubviews发送到视图控制器后仍需要自动布局.LVSMainViewController的实现需要将-layoutSubviews发送到视图以调用自动布局.
SO上的其他帖子在以编程方式设置自动布局约束时报告相同的错误(我没有这样做,虽然我在故事板中使用自动布局)和/或使用时UITableView(我在主菜单VC中没有使用)或者它所代表的VC,尽管我在应用程序的其他地方使用它).(见这里或这里.)
其他拼图:
我试着[self.view layoutSubviews];在最后添加-viewDidLayoutSubviews.当我这样做时它不会崩溃.但似乎是不明智的,因为苹果的文件说,
您不应该直接调用此方法.如果要强制进行布局更新,请在下次绘图更新之前调用setNeedsLayout方法.
如果我[self.view setNeedsLayout];在最后添加-viewDidLayoutSubviews,应用程序崩溃,首先加载主菜单VC,而不是当我离开它并返回.
可能是什么造成的?
BFa*_*Far 14
崩溃被神奇地修复的原因很可能是因为你现在正在使用iOS 8.你试过在iOS7上运行这个代码吗?
你可以通过电话接近答案[self.view layoutSubviews].
试着[self.view layoutIfNeeded]改为打电话.
看这些帖子:
| 归档时间: |
|
| 查看次数: |
3113 次 |
| 最近记录: |