2012-03-19 122 views
0

我有一個情況,需要判斷一個無效的會話,並提出loing視圖controller.Now,我從服務器得到消息後。我判斷狀態碼。如果是會話錯誤,我會發布通知。 rootviewcontroller將處理通知。這是我在RootViewController的代碼:UINavigationController presentModalViewController在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]; 

它的工作原理,但沒有動畫,做的人有一個解決方案或建議....感謝您的幫助

回答

0

我不知道爲什麼你不」只需將你的viewController放到你現有的navigationController上。也許是這樣的:

 - (void)handleInvalidSessionNotification:(NSNotification *)notification 
     { 
      LoginViewController * loginViewController = [[LoginViewController alloc] init];  
      [self.navigationController popViewController:myViewController animated:YES]; 
     } 
+0

感謝您的建議....這是非常簡單的,它絕對是一個很好的解決方案....謝謝,我會改變目前的風格 – JasonLee 2012-03-19 12:05:45

相關問題