1

我正在开发基于故事板的应用程序,我想知道是否可以有 2 个 TabBarControllers - 一个用于未登录的用户,另一个用于登录的用户。我可以在登录按钮操作时将 NotLoggedInTabBarController 交换为 LoggedInTabBarController 吗?

4

2 回答 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 回答