NavgationのBackItemを正しく理解する
AビューコントローラからBビューコントローラ(selfはAController、BControllerはB)に入ると
UInavigation Controller Class ReferenceでpushView Controllerを使用して次のビューに切り替えた場合、navigation Controllerは以下の3つの順序でナビゲーションバーの左側ボタンを変更します.1、Bビューにカスタムの左側ボタン(leftBarButtonItem)がある場合、このカスタムボタンが表示され、矩形が尖っていない.2、Bにカスタムボタンがないが、AビューのbackBarButtonItem属性にカスタム項目がある場合、このカスタム項目が表示され、スタイルが尖っている.3、前の2つがない場合、デフォルトでは後退ボタンが表示され、後退ボタンのタイトルはAビューのタイトルです.このボタンのスタイルは鋭角です.この説明によれば、backItemを変更する目的を達成するには、変更されたコードはAビューのpushView Control文の前に置くべきである.
もう一つ質問がありますが、ここで検討してみましょう.navgationbarを使用したり修正したりするときはself.navigationControl.navigationBarで、itemを修正するときはself.navigationItemを使用しています.
この現象はどんな問題を説明していますか.
すなわち、navgationcontrollerは、ビューのスタックを管理する階層ビュー管理構造で唯一です.すなわち、self.navigationControl.navigationBarのようなself.navigationControl.navigationBarを使用するすべての属性は、ビュースタック全体に対してグローバルであり、さらに具体的には1つのコントロールに、navigationbarが唯一であるということです.同様の理解では、self.navigationItemを使用する場所は、selfのプロパティを変更することを意味し、navigationItemが現在のビューのプロパティにすぎないことを意味します.つまり、各ビューに独自のnavigationItemがあることを意味します.xcode 4.4でログ検証を印刷することによっても、確かにそうです.ただ、すべてのバージョンが統一されているかどうか分かりません.
ログは次のとおりです.
main: main: main:> second: second: second:>
戻るをクリックして再びsecondにジャンプすると、新しいcontrollerの生成に伴って新しいnavigationItemが生成されます. second: second: second:>
navigationitemはNSObectから継承され、navgationbarにタイトル、左右ボタンなどを表示するためのコンテナとしての役割を果たす.
あとはbuttonItemに関する推理もあるので、自分で考えてみましょう.みんなにスペースを残してください.ほえ~~
UInavigation Controller Class ReferenceでpushView Controllerを使用して次のビューに切り替えた場合、navigation Controllerは以下の3つの順序でナビゲーションバーの左側ボタンを変更します.1、Bビューにカスタムの左側ボタン(leftBarButtonItem)がある場合、このカスタムボタンが表示され、矩形が尖っていない.2、Bにカスタムボタンがないが、AビューのbackBarButtonItem属性にカスタム項目がある場合、このカスタム項目が表示され、スタイルが尖っている.3、前の2つがない場合、デフォルトでは後退ボタンが表示され、後退ボタンのタイトルはAビューのタイトルです.このボタンのスタイルは鋭角です.この説明によれば、backItemを変更する目的を達成するには、変更されたコードはAビューのpushView Control文の前に置くべきである.
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationItem setBackBarButtonItem:backItem];// A navigationItem
[backItem release];
[self.navigationController pushViewController:BController animated:YES];// push 。
もう一つ質問がありますが、ここで検討してみましょう.navgationbarを使用したり修正したりするときはself.navigationControl.navigationBarで、itemを修正するときはself.navigationItemを使用しています.
この現象はどんな問題を説明していますか.
すなわち、navgationcontrollerは、ビューのスタックを管理する階層ビュー管理構造で唯一です.すなわち、self.navigationControl.navigationBarのようなself.navigationControl.navigationBarを使用するすべての属性は、ビュースタック全体に対してグローバルであり、さらに具体的には1つのコントロールに、navigationbarが唯一であるということです.同様の理解では、self.navigationItemを使用する場所は、selfのプロパティを変更することを意味し、navigationItemが現在のビューのプロパティにすぎないことを意味します.つまり、各ビューに独自のnavigationItemがあることを意味します.xcode 4.4でログ検証を印刷することによっても、確かにそうです.ただ、すべてのバージョンが統一されているかどうか分かりません.
ログは次のとおりです.
main:
戻るをクリックして再びsecondにジャンプすると、新しいcontrollerの生成に伴って新しいnavigationItemが生成されます. second:
navigationitemはNSObectから継承され、navgationbarにタイトル、左右ボタンなどを表示するためのコンテナとしての役割を果たす.
あとはbuttonItemに関する推理もあるので、自分で考えてみましょう.みんなにスペースを残してください.ほえ~~