5

カスタム タブ バーを追加しました。より多くのタブを含むタブ付き。

My First タブは縦向きモードのみをサポートします。2 番目のタブにはすべての向きがあります。

2 番目のタブを選択してランドスケープ モードのままにし、ランドスケープ モードで最初のタブを選択すると、問題が発生します。その際、最初のタブ ビューはきれいに回転しますが、タブ バーは横向きのままです。

どうすればこのシナリオを克服できますか? これは、カスタム タブ バー コントローラーでメソッドを回転させる必要があります。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (self.selectedIndex == 0) {

    return [self.selectedViewController shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortrait];

} else if (self.selectedIndex == 1) {

    return YES;
} 

return NO;}

これは、Navigation Controller の 1 番目と 2 番目の View Controller でメソッドを回転させる必要があります

初め

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);}

2番

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;}
4

1 に答える 1

3

インターフェイスの向きに自動回転する必要がある場合は、タブバーを再描画する必要があります。タブバーから削除して、self.window再度追加するだけです。

[navigationController_.view removeFromSuperview];
[self.window addSubview:navigationController_.view];

編集:再描画する前に、すべての向きに正しいフレームを設定する必要があります。

于 2011-05-03T10:11:42.370 に答える