我正在开发基于故事板的应用程序,我想知道我是否可以拥有2个TabBarControllers - 一个用户未登录,另一个用户登录。我可以在登录按钮操作时将NotLoggedInTabBarController交换到LoggedInTabBarController吗?
答案 0 :(得分:1)
如果在故事板(身份检查器)中向viewControllers添加Restoration ID,则可以通过调用方法instantiateViewControllerWithIdentifier:
来实例化控制器
在你的情况下,也许我会实例化一个父视图控制器,当想要交换tabBarcontroller时,我会调用
[parentViewController.storyboard instantiateViewControllerWithIdentifier:@"tabBarController2"];
然后更改控制器显示。
(未经测试,只是一些想法......)
答案 1 :(得分:0)
您可以通过检查此条件将IBAction添加到按钮并实例化所需的控制器。
ViewController *viewController = nil;
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourViewController *viewController = nil;
if ([userManager isLoggedIn]) {
viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LoggedInViewControllerIdentifier"];
} else {
viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"NotLoggedInViewControllerIdentifier"];
}
[self.navigationController pushViewController:viewController animated:YES];
在您的故事板中,您必须在身份检查器中设置故事板ID
修改强>
如果您没有使用navigationController路由到更正已记录/未记录的控制器,那么您可以这样做:
MyAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
[appDelegate.transitionController transitionToViewController:viewController
withOptions:UIViewAnimationOptionTransitionFlipFromRight];