我有一个应用程序,其结构在附加图像中定义。 基本上,我有一个登录视图控制器作为根视图控制器。当用户登录时,app会转到TabbarController,从那里他进入Home View Controller。还有三个标签。现在有一个Log Out按钮可以点击哪个用户应该进入Sign In View Controller,但是如果我编写代码以弹出到Root View Controller,他将转到任何选项卡的Root View Controller但不登录登录屏幕。 所以请建议POP如何登录View Controller。 请记住,我不想创建新的SignInViewController对象,因此Push对我来说不起作用,而且会耗费大量内存。 如果您需要更多相关信息,请告诉我,但我认为附件图片会澄清您的一切。 仅供参考:我在XCode 6.1中使用Swift
答案 0 :(得分:1)
您必须将SignInViewController设为根视图控制器。
注意:在我的场景中,工作流程在ARC模式下效果最佳。因为在ARC模式下,我们不必释放你在内存中加载的所有视图控制器。
答案 1 :(得分:1)
这是我使用动画更改rootviewcontroller的实现。此方法在AppDelegate类中定义。不要忘记将storyboardid分配给您想要的ViewController。
- (void)changeRootViewControllerWithID:(NSString *)storyboardId
{
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UINavigationController * newRootViewController = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:storyboardId];
[newRootViewController view];
[UIView transitionFromView:self.window.rootViewController.view
toView:newRootViewController.view
duration:0.65f
options:UIViewAnimationOptionTransitionFlipFromRight
completion:^(BOOL finished){
self.window.rootViewController = newRootViewController;
}];
}