我正在使用几个故事板向用户展示我的观点。故事板全部以UINavigationController
打开,嵌入必要的视图。
要为用户选择相应的故事板,我在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. iOS 7运行顺畅。
键盘出现时隐藏导航栏
这是我得到的错误:
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
}
一切正常。我只是好奇为什么它不起作用。
答案 0 :(得分:0)
应该是相反的方式。 Apple在其文档中称该属性仅适用于iOS(8.0及更高版本)。