2015-02-09 82 views
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中才能運行。

隱藏導航欄時,鍵盤出現

shows the option to hide the navbar when keyboard appears

這是錯誤我得到:

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

它應該是相反的。蘋果在其文檔中稱,該屬性僅適用於iOS(8.0及更高版本)。

+0

阿什拉夫:我剛剛重新測試。在Iphone 4上運行得很好,Iphone 5與iOS 8一起崩潰。很奇怪。 – Bernte 2015-02-09 11:56:49

+0

你可以仔細檢查這些iOS版本嗎?你看到的錯誤確實指向@Ashraf指出的內容。 – Bill 2015-02-09 12:58:51

+0

當然。 Iphone4運行在7.1.2上。其他設備,iPhone 5在8.1.3上運行。代碼在iPhone 5上崩潰。我可以構建一個小型測試項目,將其縮小到我的問題並上傳。 – Bernte 2015-02-09 13:06:12

相關問題