【发布时间】:2015-02-09 11:39:13
【问题描述】:
我正在使用几个故事板向用户展示我的观点。故事板都以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
}
一切正常。我只是好奇为什么它不能以另一种方式工作。
【问题讨论】:
标签: ios swift uinavigationcontroller navigationbar