2009-10-03 44 views
0

我已將代碼放入我的應用程序委託中,以便可以從一個視圖控制器轉換到另一個視圖控制器。如何在視圖控制器之間轉換

但是,當我按下按鈕時,不會轉換到我的SecondViewController。我應該如何去做這件事?沒有簡單的方法,使下一個視圖控制器(pushview控制器)...

這裏是我的代碼:

SecondViewController *aSecondView = [[SecondViewController alloc] init]; 
[self setSecondViewController:aSecondView]; 
[aSecondView release]; 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:2.0]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
         forView:window 
         cache:YES]; 
[viewController.view removeFromSuperview]; 
[self.window addSubview:[secondViewController view]]; 
[UIView commitAnimations]; 
+5

你在8個問題和答案0 。不好。你應該回去標記其中的一些回答。 – 2009-10-05 19:44:59

回答

1

好吧,既然你不使用內置的功能,用於呈現視圖控制器,你將不得不調用所有的view*Appear:功能:

  • -viewWillAppear:
  • -viewDidAppear:
  • -viewWillDisappear:
  • -viewDidDisappear:

我不知道是否會解決這個問題,雖然。您可能想改爲使用presentModalViewController:animated:來推送新視圖。如果它在邏輯上不是當前視圖的子視圖,那麼有一個根視圖推送第一個視圖,然後當您想要轉換時,關閉第一個視圖並從第二個視圖(從未見過)顯示第二個視圖。

1

雖然你還沒有發佈更多的代碼,所以我不能確定,但​​是在你的應用程序委託中進行控制器轉換會產生代碼異味。既然你描述了一個啓動轉換的按鈕,我的問題是,爲什麼你不使用導航控制器和/或在擁有按鈕的視圖控制器中以模態方式呈現第二個視圖控制器?

修改應用程序委託明智 - 我大多隻用我做一次性的,全球性的任務,例如加載核心數據存儲/ SQLite數據庫等