7

ビューの 1 つで、ボタンが押されると、別のビューを呼び出しますSplitViewController。これSplitViewControllerがこれらのボタンのいずれかを介して呼び出される場合、ビューに追加する特別なオブジェクトがあります。ほとんどの場合、キャンセル ボタンなどのナビゲーション バー アイテムのみです。このビューには他の場所からアクセスでき、これらのアイテムは必要ないため、特別な条件があります。

ただし、ユーザーが完了し、ViewController選択した前の画面に戻ると、その画面のナビゲーション バーが消えます。非表示に設定したり、ナビゲーションバーで奇妙なことをしたりしていません。を追加するだけでSplitViewController、ポップバックします。

いくつかのコード..

//declare the split screen VC
SplitScreenViewController *split = [[SplitScreenViewController alloc] init];

//set the flag that this VC is coming from a button, so we need the extra nav bar items
[split setIsFromButton:YES];
[self.navigationController pushViewController:split animated:YES];

今、コールバックは単純です...

- (void)cancelSelectionBtnClicked
{
     [self.navigationController popViewControllerAnimated:YES];
}

ビューが戻ると、ナビゲーション バーはなくなります。

何か案は?

編集これとまったく同じことが他の場所でも同じ方法で行われ(私が知る限り)、ナビゲーションバーが戻ったときに表示されることに注意してください。

4

2 に答える 2

10

ViewController で、viewWillAppear再び可視にすることができますnavigationBar

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO];
}
于 2013-02-14T15:56:11.063 に答える
1

UISplitViewController でさまざまな奇妙なナビゲーション バーの動作を見てきましたが、いくつかのケースでは、設定したようなナビゲーション コントローラー内ではなく、コントローラーがウィンドウの rootViewController として設定されていなかったことが原因でした。

于 2013-02-14T14:47:46.207 に答える