ios swift uitabbar替换视图控制器崩溃
我真的在为一段简单的代码而挣扎 我有一个ios应用程序,它在UITAB控制器中有4个选项卡,这取决于我想替换第一个选项卡所在的控制器的另一个选项卡中的a设置。我发现我不能简单地替换第一个选项卡(尽管我在几个版本中设法管理了它,但在一次清理之后它就停止工作了) 所以我选择用.setViewControllers方法替换选项卡控制器引用的viewcontrollers。我在viewdidload方法之后从我的viewcontroller调用它ios swift uitabbar替换视图控制器崩溃,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,我真的在为一段简单的代码而挣扎 我有一个ios应用程序,它在UITAB控制器中有4个选项卡,这取决于我想替换第一个选项卡所在的控制器的另一个选项卡中的a设置。我发现我不能简单地替换第一个选项卡(尽管我在几个版本中设法管理了它,但在一次清理之后它就停止工作了) 所以我选择用.setViewControllers方法替换选项卡控制器引用的viewcontrollers。我在viewdidload方法之后从我的viewcontroller调用它 let storyboard = UIStoryboar
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc0 = storyboard.instantiateViewControllerWithIdentifier("collection")
let vc4 = storyboard.instantiateViewControllerWithIdentifier("profilenews1")
let vc1: UIViewController! = storyboard.instantiateViewControllerWithIdentifier("news") as UIViewController
let vc2: UIViewController! = storyboard.instantiateViewControllerWithIdentifier("create") as UIViewController
let vc3: UIViewController! = storyboard.instantiateViewControllerWithIdentifier("search") as UIViewController
let controllers = [vc0,vc4]
self.tabBarController?.setViewControllers(controllers, animated: true)
从我所做的研究来看,setViewControllers是有文档记录的,我见过很多objective c示例,但是我抛出了EXEC_BAD_指令
在进行替换之前,我已检查tabcontroller是否正确
println("number of navs: \(self.tabBarController?.viewControllers?.count)")
这样就可以打印出正确数量的控制器
有什么想法吗?哪行抛出异常?还有,为什么要创建vc1、vc2和vc3,然后不使用它们做任何事情?这些代码甚至可以编译吗?在创建vc0和vc4的行的末尾应该有“as UIViewController”。代码确实可以编译,我以前在那里有as UIViewController。我减少了测试选项卡的数量,这就是为什么VC1、VC2和VC3没有添加到控制器阵列中。引发异常的行是self.tabBarController?.setViewController