从 UIPageViewController 模态显示 UINavigationController 会锁定 iOS 9

Posted

技术标签:

【中文标题】从 UIPageViewController 模态显示 UINavigationController 会锁定 iOS 9【英文标题】:Modally Presenting a UINavigationController from UIPageViewController locks iOS 9 【发布时间】:2015-09-16 22:10:46 【问题描述】:

所以在我的应用程序中,我们有一个UIPageViewController,它有一个包含一个按钮的UIToolbar,当按下该按钮时会实例化一个新的UINavigationController 和一个嵌入在导航控制器中的UIViewController。完成后我打电话给[self presentViewController:navController animated:YES completion:nil]。这会占用 CPU 并锁定应用程序。

我在 UIViewController 中设置了一个断点,该断点嵌入在要显示的 UINavigationController 中,并且唯一执行的调用是 initWithCoder:

ONLY在使用 Xcode 7 时发生,我尝试将其剥离为裸露(除了加载之外在呈现的模式中不做任何事情),但它没有帮助。

【问题讨论】:

单击调试器中的“暂停”按钮并查看堆栈跟踪以查看 CPU 达到峰值时调用的内容。 只是obj_msgSend 它似乎卡在0x11376581c <+28>: jmpq *0x8(%r10),偶尔也卡在[NSLocalizableString length],我不是这么称呼自己的。 【参考方案1】:

哇,在我看来,这是 Apple 的新低。为UITextView 提供默认文本但纯文本、属性文本的问题不会导致问题。这几乎是尴尬的。

【讨论】:

这正是我遇到的。如果您的模态框上有 UITextView,则不能通过情节提要覆盖文本,否则您的模态框将冻结您的应用程序。这是在 App Store 上的 Xcode 7 上。

以上是关于从 UIPageViewController 模态显示 UINavigationController 会锁定 iOS 9的主要内容,如果未能解决你的问题,请参考以下文章

如何从属于 UIPageViewController 的 UIViewController 之一更改 UIPageViewController?

将删除滑动手势从 UIPageViewController 传递给 UITableView

IOS 如何从其子级访问 uipageviewcontroller?

如何将数据从 UIPageViewController 传递到它的“子视图”之一?

从 UIPageViewController 中删除之前添加的 viewController

从 Swift 3 中的 UIPageViewController 中删除黑边