我正在开发基于故事板的应用程序,我想知道是否可以有 2 个 TabBarControllers - 一个用于未登录的用户,另一个用于登录的用户。我可以在登录按钮操作时将 NotLoggedInTabBarController 交换为 LoggedInTabBarController 吗?
问问题
281 次
2 回答
1
如果您在情节提要(身份检查器)中的 viewControllers 中添加恢复 ID,则可以通过调用方法来实例化控制器instantiateViewControllerWithIdentifier:
在你的情况下,也许我会实例化一个父视图控制器,当想要交换 tabBarcontroller 时,我会调用
[parentViewController.storyboard instantiateViewControllerWithIdentifier:@"tabBarController2"];
然后更改显示的控制器。
(未经测试,只是一些想法......)
于 2013-06-27T08:00:53.483 回答
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];
于 2013-06-27T08:01:10.963 回答