Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios swift uitabbar替换视图控制器崩溃_Ios_Swift_Uitabbarcontroller - Fatal编程技术网

ios swift uitabbar替换视图控制器崩溃

ios swift uitabbar替换视图控制器崩溃,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,我真的在为一段简单的代码而挣扎 我有一个ios应用程序,它在UITAB控制器中有4个选项卡,这取决于我想替换第一个选项卡所在的控制器的另一个选项卡中的a设置。我发现我不能简单地替换第一个选项卡(尽管我在几个版本中设法管理了它,但在一次清理之后它就停止工作了) 所以我选择用.setViewControllers方法替换选项卡控制器引用的viewcontrollers。我在viewdidload方法之后从我的viewcontroller调用它 let storyboard = UIStoryboar

我真的在为一段简单的代码而挣扎

我有一个ios应用程序,它在UITAB控制器中有4个选项卡,这取决于我想替换第一个选项卡所在的控制器的另一个选项卡中的a设置。我发现我不能简单地替换第一个选项卡(尽管我在几个版本中设法管理了它,但在一次清理之后它就停止工作了)

所以我选择用.setViewControllers方法替换选项卡控制器引用的viewcontrollers。我在viewdidload方法之后从我的viewcontroller调用它

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