2011-03-17 106 views
1

我有我的應用程序的密碼認證。我的應用是基於窗口的。我有五種觀點:MyApplicationAppDelegate,MainViewController,HelpViewController,SettingViewControllerErrorViewControllerApplicationWillEnterForeground的不一致行爲

當應用程序啓動時,我導航到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

如果您需要任何其他細節,請詢問 – 2011-03-17 05:27:28

回答

0

他能找到答案。我用didEnterBackground使用了NSNotificationcenter。我在除了MainView之外的其他所有視圖中都使用了它。在我didEnterBackground方法我用 [self.navigationController popViewControllerAnimated:NO];

這迫使所有其他視圖來的MainView時應用minised,這解決了這個問題。