簡體   English   中英

navigationController?.isNavigationBarHidden = true導致Swift中出現NSRangeException。 我該如何預防?

[英]navigationController?.isNavigationBarHidden = true causes NSRangeException in Swift. How can I prevent it?

我有一個UITabController,其中嵌入了兩個UIViewControllers。 他們兩個在viewWillAppear中都具有以下代碼:

override func viewWillAppear(_ animated: Bool){
    super.viewWillAppear(animated)
    self.navigationController?.isNavigationBarHidden = true

現在,有時候當我真的真的通過在選項卡之間來回切換來快速更改視圖時,我由於以下錯誤使應用程序崩潰:

2017-04-22 22:04:52.033830 appName[433:61198] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(0x1934e91b8 0x191f2055c 0x1933c471c 0x100111d90 0x100117870
0x1996e1b58 0x1996e1d88 0x1996cf320 0x1996e6dec 0x199482de8 
0x19939ba80 0x1968499d8 0x19683e4cc 0x1993b0500 0x199458720
0x199456004 0x19950fa20 0x19950f580 0x100272764 0x100277628
0x1993b6754 0x1993b64cc 0x1994532d0 0x1993b6754 0x1993b64cc
0x1994d8084 0x1994d7d08 0x1994d7b64 0x1994da80c 0x199597544
0x1993d3d30 0x19959734c 0x1993d3d30 0x1993d3cb0 0x1993be128
0x1998ac0bc 0x1993d3d30 0x1993d3cb0 0x1993be128 0x1993d359c
0x19995e628 0x19995a6c0 0x1934960c0 0x193493cf0 0x193494180
0x1933c22b8 0x194e76198 0x1994097fc 0x199404534 0x1001e04e0 
0x1923a55b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

我還看到以下錯誤:

在此處輸入圖片說明

您知道這里可能是什么問題,我該如何預防?

我無法復制崩潰,似乎還有其他可能嗎? 另外,請嘗試在viewDidLoad()中實現代碼,該代碼通常更適合應用程序生命周期中的UI內容。

override func viewDidLoad(){
    super.viewDidLoad()
    self.navigationController?.isNavigationBarHidden = true
}

它掛在ios 11.1.1上。 換成雙胞胎

navigationController!.setNavigationBarHidden(true, animated: false)

解決了這個令人鼓舞的Android級錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM