我有一个带按钮的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的类型,那么这个面板永远不会被隐藏。
答案 0 :(得分:1)
[[jsonData objectAtIndex:0] objectForKey:@"Key for retrieving value from Object"];
属性是rootViewController
上的属性,它定义了应用程序启动时显示的第一个或根视图控制器,并且您无法在视图控制器上将其设置为属性。
您可以做的不是使用segue推送视图控制器,而是通过故事板启动视图控制器,然后使用UIWindow
或showViewController:
方法在presentViewController:
上推送它。你已经实际上得到了它:
UIViewController
另请注意,您需要在let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let tabBarVC = storyboard.instantiateViewControllerWithIdentifier("MainWindow") as? TabController {
self.showViewController(tabBarVC, sender: self)
}
内拨打dismissViewController:completion:
。