Ios 以编程方式更改UINavigationController的根控制器
我使用的是故事板,我已经将UITabBarController设置为根控制器。我在选项卡栏中有3个选项卡项,对于第一个,我有一个UINavigationController。我希望此导航控制器的根视图控制器进行数字设置:根据用户提供的参数,我有两个候选视图控制器 我在AppDelegate中尝试这样做: 但它不起作用。在故事板中,我没有homeController1和HomeController2的任何序列。我怎么能这样做Ios 以编程方式更改UINavigationController的根控制器,ios,uiviewcontroller,uinavigationcontroller,storyboard,Ios,Uiviewcontroller,Uinavigationcontroller,Storyboard,我使用的是故事板,我已经将UITabBarController设置为根控制器。我在选项卡栏中有3个选项卡项,对于第一个,我有一个UINavigationController。我希望此导航控制器的根视图控制器进行数字设置:根据用户提供的参数,我有两个候选视图控制器 我在AppDelegate中尝试这样做: 但它不起作用。在故事板中,我没有homeController1和HomeController2的任何序列。我怎么能这样做 谢谢如果我理解正确,您将根据情况尝试启动不同的视图控制器。您可以在应用程
谢谢如果我理解正确,您将根据情况尝试启动不同的视图控制器。您可以在应用程序代理中尝试此操作
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"Main" bundle:nil];
if (yourCondition) {
UIViewController *viewController =
[storyboard instantiateViewControllerWithIdentifier:@"tutorialView"];
self.window.rootViewController = viewController;
} else {
UIViewController *viewController = [storyboard
instantiateViewControllerWithIdentifier:@"mainViewController"];
self.window.rootViewController = viewController;
}
当你说它不起作用时,发生了什么与你预期的不同?您是否已验证所有变量均为非nil?@oltman这意味着未加载视图控制器。。。是的,我已经检查过当我从故事板实例化时是否得到非零引用这或多或少是我正在尝试做的,除了条件视图控制器不是窗口这一事实。rootViewController。。。但是没有使用我发布的代码加载视图控制器。。。
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"Main" bundle:nil];
if (yourCondition) {
UIViewController *viewController =
[storyboard instantiateViewControllerWithIdentifier:@"tutorialView"];
self.window.rootViewController = viewController;
} else {
UIViewController *viewController = [storyboard
instantiateViewControllerWithIdentifier:@"mainViewController"];
self.window.rootViewController = viewController;
}