2011-05-10 39 views
1

當我創建一個項目,並啓動它沒有改變,並自動創建的viewcontroller加載它調用shouldAutorotateToInterfaceOrientation沒有任何問題。 現在我嘗試了不同的方法來呈現自己的viewcontroller,但在該視圖中,shouldAutorotateToInterfaceOrientation不會在循環中調用。 我的第一次嘗試是改變應用程序委託的didFinishLaunchingWithOptions那樣:shouldAutorotateToInterfaceOrientation只是在呈現視圖控制器後調用

ProjectView1 *pv1 = [ProjectView1 alloc]; 
self.viewController = pv1; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 

但在ProjectView1的shouldAutorotateToInterfaceOrientation不叫上旋轉屏幕。

我的第二次嘗試是加載通過調用presentModalViewController來創建項目並通過調用presentModalViewController來顯示我的自定義視圖,但結果是相同的,我的自定義視圖控制器沒有調用shouldAutorotateToInterfaceOrientation。

+0

您是如何呈現視圖控制器的?(您的第一次嘗試,在您意識到問題之前)?嘗試檢查導航堆棧,並找到任何可能攔截該方法的類。 – FeifanZ 2011-05-10 10:31:35

+0

在codesample中,我只是將「ProjectView1」設置爲視圖控制器,僅此而已。而在視圖控制器中,我沒有接到shouldAutorotateToInterfaceOrientation的調用。 – 2011-05-10 10:45:20

回答

1

在爲UIViewController分配資源後,您應該調用initWithNib方法。

我試圖複製這一局面,下面的代碼調用上定向變化shouldAutorotateToInterfaceOrientation:

ProjectView1 *pv1 = [[ProjectView1 alloc]initWithNibName:nil bundle:nil]; 
self.viewController = pv1; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 

更改代碼,把正確的筆尖文件名或離開它爲零,如果你打算建立自己的看法。

+0

是的,這很好。它看起來像init方法在響應鏈中註冊視圖。謝謝。 – 2011-05-10 12:18:48