gpt4 book ai didi

ios - "Auto Layout still required..."返回主视图 Controller 时崩溃

转载 作者:可可西里 更新时间:2023-11-01 03:41:12 25 4
gpt4 key购买 nike

我的应用启动时带有一个主菜单,该菜单是 UIViewController 的自定义子类,名为 LVSMainViewController。它嵌入在 UINavigationController 中,在 Storyboard中设置为初始 VC。 LVSMainViewController 实现了 -viewDidLayoutSubviews

点击按钮会将用户带到应用程序的不同部分(不同的 VC)。用户通过连接到推送 segue 的按钮返回到主菜单。但是当应用程序再次加载主菜单 VC 时,它会崩溃并显示以下消息:

2014-08-28 16:11:14.122 * Assertion failure in -[UIView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8803

2014-08-28 16:11:14.257 * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after sending -viewDidLayoutSubviews to the view controller. LVSMainViewController's implementation needs to send -layoutSubviews to the view to invoke auto layout.'

SO 上的其他帖子在以编程方式设置自动布局约束时(我没有这样做,尽管我在 Storyboard 中使用了自动布局)和/或使用 UITableView 时报告了相同的错误(尽管我在应用程序的其他地方使用它,但我既没有在主菜单 VC 中使用它,也没有在它连接到的 VC 中使用它。 (参见 herehere 。)

其他拼图:

  1. 我尝试在 -viewDidLayoutSubviews 的末尾添加 [self.view layoutSubviews];。当我这样做时它不会崩溃。但自 Apple's documentation 以来似乎不明智说

    You should not call this method directly. If you want to force a layout update, call the setNeedsLayout method instead to do so prior to the next drawing update.

  2. 如果我改为在 -viewDidLayoutSubviews 末尾添加 [self.view setNeedsLayout];,应用程序会崩溃,它会首先加载主菜单 VC,不是当我离开它并返回时。

这可能是什么原因造成的??

最佳答案

崩溃被神奇修复的原因可能是因为您现在使用的是 iOS 8。您是否尝试过在 iOS7 上运行此代码?

通过调用 [self.view layoutSubviews],您已接近答案。

尝试调用 [self.view layoutIfNeeded]

查看这些帖子:

Autolayout and subviews

Auto Layout error

关于ios - "Auto Layout still required..."返回主视图 Controller 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25557441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com