如何在swift中从我的UIViewController设置rootViewController?

时间:2016-04-03 09:16:57

标签: ios swift segue

我有一个带按钮的UIViewController。

此按钮有一个方法,应切换到另一个UIViewController。以前我通过以下方式处理:

self.performSegueWithIdentifier("moveToMainWindow", sender: self)

但我想将其更改为:

let sb = UIStoryboard(name: "Main", bundle: nil)
if let tabBarVC = sb.instantiateViewControllerWithIdentifier("MainWindow") as? TabController {
    self.rootViewController = tabBarVC

 }

然而,这行self.rootViewController = tabBarVC带来的错误是viewcontroller类型的值没有成员rootViewController。

我有什么可以解决的,以便它可以工作吗?

我希望避免执行performSegueWithIdentifier,因为稍后我会做几次self.dismissViewControllerAnimated(true, completion: {}),在这种情况下我的MainWindow小组也会被解雇。所以我想如果我在这里更改segue的类型,那么这个面板永远不会被隐藏。

1 个答案:

答案 0 :(得分:1)

[[jsonData objectAtIndex:0] objectForKey:@"Key for retrieving value from Object"]; 属性是rootViewController上的属性,它定义了应用程序启动时显示的第一个或根视图控制器,并且您无法在视图控制器上将其设置为属性。

您可以做的不是使用segue推送视图控制器,而是通过故事板启动视图控制器,然后使用UIWindowshowViewController:方法在presentViewController:上推送它。你已经实际上得到了它:

UIViewController

另请注意,您需要在let storyboard = UIStoryboard(name: "Main", bundle: nil) if let tabBarVC = storyboard.instantiateViewControllerWithIdentifier("MainWindow") as? TabController { self.showViewController(tabBarVC, sender: self) } 内拨打dismissViewController:completion: