好吧,我遇到了一個奇怪的問題,我來看看是否有人能幫我解釋一下。iOS 8的* some *版本中的自定義導航項目的內部不一致例外
背景
我的應用程序是針對支持的iOS 8 我所有的導航欄嵌入在UINavigationController
,並設置每個欄如下的viewDidLoad
let newNavItem = UINavigationItem()
newNavItem.leftBarButtonItem = menuButtonItem
newNavItem.rightBarButtonItem = addBarItem
newNavItem.title = "Home"
self.navigationController?.navigationBar.setItems([newNavItem], animated: false)
問題
當第一次用戶寄存器,它們被屏蔽到一個屏幕上,該屏幕可以讓他們根據自己的註冊方式(使用Facebook或不使用Facebook)選擇要上傳的檔案圖片或選擇大學。在我所有的iOS 9測試中,下面的代碼轉到了我的主屏幕,其中有一個導航欄,上面添加了按鈕,這可以正常工作。按鈕設置並按預期做出響應。然而,與iOS的8.0.2和iOS 8.1,當用戶經過該賽格瑞一個NSInternalInconsistencyException
被拋出,與錯誤
*終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,原因:「不能撥打 setItems:動畫:直接由 控制器管理的UINavigationBar的*'
然而,這裏的怪異的一部分,不會發生的iOS 8.4這個問題,我說我沒有。在iOS9下運行它。我還沒有測試8.2和8.3,但是沒有這樣做,我仍然沒有爲什麼iOS的某些版本會出現這種異常,而其他版本則不會。希望有人能夠指引我正確的方向。