self.navigationController.navigationItemとself.navigationItemの違いは何ですか?アプリ全体でUINavigationControllerを使用していますが、viewControllerの1つのviewDidLoadメソッドの1つでself.navigationController.navigationItem.rightBarButtonItemsを使用すると、配列が空になります。ただし、self.navigationItem.rightBarButtonItemsを使用すると、バーボタンアイテムが表示されます。2つの呼び出しの違いは何ですか?ありがとう!
質問する
738 次
2 に答える
5
AUINavigationController
はのサブクラスですUIViewController
。navigationItem
そのため、から継承した独自の独立したプロパティがありUIViewController
ます。このプロパティは無視する必要があります。これは、ナビゲーションコントローラーを別のナビゲーションコントローラー内に埋め込む場合にのみ使用されるためです(これは、正しい心の誰もが行うことはありません)。
于 2012-06-25T21:40:22.017 に答える
0
のドキュメントから、UIViewController+UINavigationControllerItem
以下を参照してください。ViewControllerでnavigationItem
プロパティを直接使用する必要があります。
// Created on-demand so that a view controller may customize its navigation appearance.
@property(nonatomic,readonly,strong) UINavigationItem *navigationItem;
UINavigationController
navigationItem
から継承するため、プロパティもありますUIViewController
が、設定してもViewControllerのナビゲーションプロパティには影響しません。
簡単なテストから、これらのナビゲーション項目も等しくないことがわかります。
(lldb) po self.navigationItem
<UINavigationItem: 0x7f865c99ec50>
(lldb) expr -- @import UIKit
(lldb) po self.navigationController.navigationItem
<UINavigationItem: 0x7f865c811740>
于 2016-02-29T23:44:41.907 に答える