2009-12-26 76 views
0

我有一個標籤欄設置與幾個選項卡。第一個tabitem是以編程方式加載以縱向佈局的xib的viewcontroller。當用戶旋轉手機時,它會自動呈現橫向佈局的模式視圖。這個機制工作正常。iPhone:一些視圖其他景觀風景

當設備旋轉到肖像模式時,它駁回的模態視圖和的TabBar是可見在底部。我希望我的其他一些標籤欄項目(如scrollview和webview)能夠在設備旋轉時自動旋轉到橫向。

我已經實現了一個名爲RotateTabBarViewController的類,該類包含shouldAutorotateToInterfaceOrientation方法,並檢查selectedViewController上相同方法的值。因此,如果我的webview中的shouldAutorotateToInterfaceOrientation方法返回true,則視圖將按預期旋轉。

這是問題所在。當旋轉的視圖處於橫向模式時,Tabbar仍然可見,這意味着用戶可以單擊第一個項目的圖標。當第一個項目被點擊時,它知道它處於橫向模式,並自動再次加載模態視圖。唯一的問題是視圖在屏幕上偏移。

我正在尋找的是將調整模式視圖到它應該是一個解決辦法。我不確定這是否是需要重新排列的主要視圖,還是僅僅是模態視圖。

以下鏈接包含該概念的演示。

http://www.veryniceindustries.com/rotation_demo.zip

  • 旋轉裝置,以肖像
  • 選擇項目兩個
  • 旋轉裝置景觀(需要一些幫助重新調整這一觀點)
  • 選擇項目中的一個(模態出現的景觀,但偏移)

任何幫助將不勝感激。

最佳, 豪伊

+0

我期待着你的代碼,規劃爲iSlate太我看到:) – Jonathan 2009-12-26 13:11:16

+0

類似的東西 - 不知怎的,這個項目擁有所有學習如何建立一個更大的應用程序的必要組成部分。 – Ward 2009-12-26 13:57:16

回答

0

你有沒有考慮落實上的viewController#1的viewWillAppear中的方法,並糾正視圖的框架?

或者處理它在itemOneViewController上的orientationChanged或updateItemOneView方法?

PS:感謝suppling的源代碼,作爲一個年輕的OBJ-C程序員總是很高興看到別人如何處理的問題。

+0

感謝您的迴應 - 但我是這樣一個noob我不知道如何改變框架。是在viewWillAppear方法中傳遞一個新框架給「自我」還是涉及更多的事情?發生有一個片段,我可以檢查出來嗎? 謝謝, Howie – Ward 2009-12-26 13:56:08

+0

那麼UIViewController是不是一個UIView,所以你實際上想要的東西像[self.view setFrame:UITabBarController.view.frame]。 UITabBarController應該是您正在使用的UITabBarController的實例。您可以在IB中進行參考並將其分配給伊娃,以便您可以輕鬆參考。 幀是C結構體調用CGRect,你可以使它們與CGRectMake() – Jonathan 2009-12-26 16:04:26

+0

看起來像itemOneViewController視圖和itemOneLandscapeViewController視圖的來源都是0,0。當我從一個tabbar項目轉到另一個項目時是否有其他可能? – Ward 2009-12-27 20:06:56