私のセットアップ
メインのストーリーボードでは、さまざまなセクションへのリンクを含むサイドバーにSWRevealViewControllerを使用しています。
各セクションは、 RBStoryboardLinkを使用してメイン ストーリーボードにリンクされた個別のストーリーボードに表示されます。
子ストーリーボードでシーンへのセグエを実行すると、メイン ナビゲーション コントローラーは、宛先シーンのタイトルと戻るボタンを配置してこれを表すことができます。この時点で、すべてがうまく機能します。
スキーマへの近似は次のとおりです。
-SWRevealViewController
|-> (SWRevealViewControllerSegue) -> sw_front
|-> (SWRevealViewControllerSegue) -> sw_rear
-(sw_rear)UITableViewController
|(each row selection)
|-> SWRevealViewControllerSegue -> (CommonContainer)
-CommonContainer
|-> Container -> Embed segue for container -> RBStoryboardLink
- RBStoryboardLink
|->(User defined runtime attributes) "storyboardName" : "target_storyboard"
-SpecfificControllerOfTargetedStoryboard
-(void)viewDidLoad{
UIBarButtonItem * button = //...
self.topViewController.navigationItem.rightBarButtonItem = button;//DOESN'T WORK
私の問題
子ストーリーボードからメイン ナビゲーション バーに rightBarButtonItems を追加できません。
私が試したことはありますが、成功しませんでした
シングルトンを使用してバーボタンを動的に追加する
メインのナビゲーション コントローラーを、異なるストーリーボードの子シーンから渡されたボタンを追加するメソッドを使用してシングルトンにしました。
- (void) addRightButton:(UIBarButtonItem *) button{
self.topViewController.navigationItem.rightBarButtonItem = button;
}
これは、メニューでルート シーンが呼び出された場合でも、最初にのみ機能します。
メイン ナビゲーションバーを狭くする
最悪の解決策も機能しません。子シーンのトップ ボタンを表示するために、メインのナビゲーション バーの幅を変更できません。