我的应用程序有密码验证。我的应用是基于窗口的。我有五个视图:MyApplicationAppDelegate
,MainViewController
,HelpViewController
,SettingViewController
和ErrorViewController
。
当应用程序启动时,我导航到MainViewController
。工具栏上有两个按钮,用于帮助和设置,指向各个页面。现在,我在MyApplicationAppDelegate
中编写了以下代码:
- (void)applicationWillEnterForegroundUIApplication *)application {
[self showMyView];
}
-(void)showMyView{
if (![Global timeSet]) {
if (errorviewFlag) {
if (![Global show]){
ErrorPageViewController *bViewController = [[[ErrorPageViewController alloc]
initWithNibName"ErrorPageViewController" bundle:[NSBundle mainBundle]] autorelease];
[self setError:bViewController];
self.error = bViewController;
//[window addSubview:[error view]];
[[self navigationController] pushViewController:bViewController animated: NO];
UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle"Back" style:UIBarButtonItemStyleDone target:nil action:nil];
[self.navigationController setNavigationBarHidden:YES];
[self.navigationController setToolbarHidden:YES];
[_backButton release], _backButton = nil;
[window makeKeyAndVisible];
errorviewFlag=FALSE;
[Global setShow:TRUE];
}
}
}
}
现在,除第一次以外,所有时间都会调用此方法。
问题是这只能以所需的方式工作,即显示ErrorPage,当我从MainView最小化应用程序时。如果我从帮助或设置中最小化,它不会显示错误页面,而是显示没有导航控件的主页。为什么呢?
答案 0 :(得分:0)
他能够找到答案。我使用NSNotificationcenter和didEnterBackground。我在除MainView之外的所有其他视图中使用了它。在我使用的didEnterBackground方法中
[self.navigationController popViewControllerAnimated:NO];
当应用程序被缩小时,这迫使所有其他视图进入MainView,这解决了问题。