我已经将UINavigationController设置为mainWindow的rootViewController。
我从代码中推送和弹出viewcontrollers(因此推送和弹出不会被用户交互触发)。
当我在应用程序处于前台时这样做时,每个人都应该按原样运行。
但是当我在后台运行应用程序时,不会显示正确的ViewController。
此问题仅在iOS 7.x上可重现。
可在此链接下找到示例项目:https://www.dropbox.com/sh/pmxnpgtrjxwehs7/_l3NW4xllf
要重现此问题,只需将应用程序置于后台并等待12秒并将应用程序返回到前台:当您使用UINavigationBar的后退按钮进行导航时,不会显示navigationController的rootView(因为它应该):背景仍然是绿色,而不是黄色(navigationController的rootViewController' s背景是黄色)。
当应用程序位于前台时,点击带有标签" aaaaa"执行相同的导航,但完成后,GUI处于正确的状态。
简而言之: 当应用程序位于前台但当应用程序在后台时不起作用时,此方法有效:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"pushViewController!");
[self pushViewController:[[BViewController alloc] init] animated:YES];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self popToRootViewControllerAnimated:YES];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self pushViewController:[[BViewController alloc] init] animated:YES];
});
});
});
你知道如何解决这个问题吗?
提前致谢!
答案 0 :(得分:0)
我找到了一个解决方案:我使用此处发布的代码实现了相同的导航动画:stackoverflow.com/questions/9480458/change-animation-transition。使用该代码无法重现该问题!