rootviewcontroller 中的 UINavigationController presentModalViewController 没有出现动画
Posted
技术标签:
【中文标题】rootviewcontroller 中的 UINavigationController presentModalViewController 没有出现动画【英文标题】:UINavigationController presentModalViewController in rootviewcontroller didn't present with animations 【发布时间】:2012-03-19 10:07:59 【问题描述】:我有一种情况需要判断一个无效的会话并呈现 loing 视图控制器。现在,在我从服务器收到消息之后。我判断 statuscode 。如果是会话错误,我会发布通知。 rootviewcontroller 将处理通知。这是我在 rootviewcontroller 中的代码:
- (void)handleInvalidSessionNotification:(NSNotification *)notification
UINavigationController * tmpController = self.navigationController;
[tmpController popToRootViewControllerAnimated:NO];
LoginViewController * loginViewController = [[LoginViewController alloc] init];
UINavigationController * naviController = [[UINavigationController alloc] initWithRootViewController:loginViewController];
naviController.navigationBarHidden = YES;
[self.navigationController presentModalViewController:naviController animated:YES];
最初它不起作用。我找到了这个链接 UINavigationController popToRootViewController, and then immediately push a new view ,并更改了代码:
UINavigationController * tmpController = self.navigationController;
[tmpController popToRootViewControllerAnimated:NO];
它可以工作,但没有动画,有人有解决方案或建议....谢谢您的帮助
【问题讨论】:
【参考方案1】:我想知道为什么不简单地将 viewController 推送到现有的 navigationController 上。可能是这样的:
- (void)handleInvalidSessionNotification:(NSNotification *)notification
LoginViewController * loginViewController = [[LoginViewController alloc] init];
[self.navigationController popViewController:myViewController animated:YES];
【讨论】:
感谢您的建议....非常简单,而且绝对是一个很好的解决方案....谢谢,我会改变现在的风格以上是关于rootviewcontroller 中的 UINavigationController presentModalViewController 没有出现动画的主要内容,如果未能解决你的问题,请参考以下文章
Objective-C中的rootViewController和addSubview?
rootviewcontroller 中的 UINavigationController presentModalViewController 没有出现动画
更改 UISplitView 中的 RootViewController
如何从 rootViewController 中的多级导航更新 detailViewController.detailItem