1
我正在使用多個故事板向用戶呈現我的視圖。故事板全部以嵌入必要視圖的UINavigationController
打開。當鍵盤出現崩潰時,UINavigationController隱藏條形圖應用程序(SWIFT)
要爲用戶選擇相應的故事板,我在AppDelegate中運行一些邏輯,然後加載故事板。
的AppDelegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let navigationController:UINavigationController = storyboard.instantiateInitialViewController() as UINavigationController
let rootViewController:UIViewController = storyboard.instantiateViewControllerWithIdentifier("Initial") as UIViewController
navigationController.viewControllers = [rootViewController]
self.window?.rootViewController = navigationController
}
一切順利。但是,如果我選中該選項,UINavigationController
應該在出現鍵盤時使用(使用UITextField
)來隱藏欄,則應用程序會崩潰。但只有在iOS 8中才能運行。
隱藏導航欄時,鍵盤出現
這是錯誤我得到:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[OS_dispatch_queue _hideForKeyboardAppearance]: unrecognized selector sent to instance 0x15d67540'
的libC++ abi.dylib:與類型的未捕獲的異常終止NSException
我猜測,由於我加載故事板的方式,代表團在某種程度上被搞砸了。如果我通過手動隱藏導航欄
@IBAction func editTextFieldStart(sender: AnyObject) {
self.navigationController?.navigationBarHidden = true
}
一切正常。我只是好奇它爲什麼不能以其他方式工作。
阿什拉夫:我剛剛重新測試。在Iphone 4上運行得很好,Iphone 5與iOS 8一起崩潰。很奇怪。 – Bernte 2015-02-09 11:56:49
你可以仔細檢查這些iOS版本嗎?你看到的錯誤確實指向@Ashraf指出的內容。 – Bill 2015-02-09 12:58:51
當然。 Iphone4運行在7.1.2上。其他設備,iPhone 5在8.1.3上運行。代碼在iPhone 5上崩潰。我可以構建一個小型測試項目,將其縮小到我的問題並上傳。 – Bernte 2015-02-09 13:06:12