gpt4 book ai didi

ios - *某些* iOS 8 版本中自定义导航项的内部不一致异常

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:25 26 4
gpt4 key购买 nike

好吧,我遇到了一个奇怪的问题,我来这里是想看看是否有人可以帮我解释一下。

背景

我的应用旨在支持 iOS 8。我所有的导航栏都嵌入在 UINavigationController 中,每个栏在 viewDidLoad

中设置如下(或多或少)
let newNavItem = UINavigationItem()
newNavItem.leftBarButtonItem = menuButtonItem
newNavItem.rightBarButtonItem = addBarItem
newNavItem.title = "Home"
self.navigationController?.navigationBar.setItems([newNavItem], animated: false)

问题

当用户第一次注册时,他们会被转到一个屏幕,该屏幕旨在允许他们选择要上传的个人资料图片,或选择一所大学,具体取决于他们的注册方式(使用或不使用 Facebook) ).在我所有的 iOS 9 测试中,以下转至我的主屏幕,它有一个导航栏,上面添加了按钮,这工作正常。按钮已设置并按预期响应。然而,在 iOS 8.0.2 和 iOS 8.1 中,当用户通过这个 segue 时,一个 NSInternalInconsistencyException 被抛出,错误是

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Cannot call setItems:animated: directly on a UINavigationBar managed by a controller.*'

然而,奇怪的是,这个问题在 iOS 8.4 中没有发生,正如我所说,我在 iOS 9 中根本没有遇到过这个问题。我还没有测试 8.2 和 8.3,但没有这样做,我仍然不确定为什么某些版本的 iOS 会因此异常而崩溃,而其他版本则不会。希望有人能够指出我正确的方向。

最佳答案

好吧,我已经找到了问题的解决方案,它涉及为每个 NavigationBar 更改上面的代码,我必须将其更改为以下代码:

self.navigationItem.setLeftBarButtonItem(menuButtonItem, animated: true)
self.navigationItem.setRightBarButtonItem(addButtonItem, animated: true)
self.title = "Home"

我把它放在这里以防其他人遇到同样的问题并且没有解决方案,但我仍然很困惑为什么只在某些版本的 iOS 上抛出异常,如果有人可以告诉我原因,那就太好了。

关于ios - *某些* iOS 8 版本中自定义导航项的内部不一致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33271366/

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