我有一个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)


我还看到以下错误:

ios - navigationController?.isNavigationBarHidden = true导致Swift中出现NSRangeException。我该如何预防?-LMLPHP

您知道这里可能是什么问题,我该如何预防?

最佳答案

我无法复制崩溃,似乎还有其他可能吗?
另外,请尝试在viewDidLoad()中实现代码,该代码通常更适合应用程序生命周期中的UI内容。

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

关于ios - navigationController?.isNavigationBarHidden = true导致Swift中出现NSRangeException。我该如何预防?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43564104/

10-10 20:53