我有一個iPhone應用程序使用導航控制器顯示頂部欄(帶標題和返回按鈕等)。iPhone的UITabBar作爲應用程序窗口的一部分;旋轉設備時出現問題
我在應用程序窗口中添加了一個UITabBar
,它可以在它的各個部分之間切換。我沒有將標籤欄添加到每個ViewController的視圖中,而是將它添加到應用程序窗口中。 (當我在ViewController中使用它時,控制器之間的切換使標籤欄左右滑動,當發生動畫彈出/推動時,與整個視圖一起)。
因此,我將UITabBar
添加到MainWindow.xib
,並將其綁定到應用程序委託的變量。在我didFinishLaunchingWithOptions
方法,我添加以下代碼:
[self.window addSubview:navigationController.view];
CGRect frame = navigationController.view.frame;
frame.size.height -= tabbar.frame.size.height;
navigationController.view.frame = frame;
tabbar.selectedItem = [tabbar.items objectAtIndex:0];
來調整主(navigationController
的)認爲,爲了使的TabBar可見。
當我旋轉設備時出現問題 - 我的視圖被拉伸到整個窗口,並且我失去了顯示TabBar的能力。
我添加了一個- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation) fromInterfaceOrientation
方法到我的ViewController,用下面的代碼:
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
CGRect frame = self.view.frame;
frame.size.height -= [AppState shared].tabBar.frame.size.height;
//frame.origin.y = [AppState shared].tabBar.frame.size.height;
//frame.origin.x = 100;
self.view.frame = frame;
frame = [AppState shared].tabBar.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.origin.y - frame.size.height;
[AppState shared].tabBar.frame = frame;
}
它調整大小的視圖,並且移動標籤欄到視圖的上/下部分(I只允許縱向/肖像顛倒的方向在這裏)。問題是,我的TabBar也顛倒了,而且它不再是可點擊的。
它看起來像下面的圖片:
任何人都知道如何處理這種情況?或者,如何使標籤欄不綁定到視圖控制器,還能夠順利處理界面的旋轉?