###前提・実現したいこと
掲題の通り、Pushで画面が切り替わっても常にNavigationBarに右側のアイコンを表示したいと考えています。
またどの画面でも押した際の処理は共通なので、その処理もどこかのクラスにまとめて書けないのでしょうか。
ボタンの動作としては画面右上4分の1にviewを生成、更にその上にボタンを配置し、
そのボタンが押されるとメインのビューが遷移する形になります。
###該当のソースコード
Swift
1let menuImage = #imageLiteral(resourceName: "header_nav").withRenderingMode(.alwaysOriginal) 2let menu = UIBarButtonItem(image: menuImage, style: .done, target: self, action: #selector(self.openMenu(_:))) 3self.navigationItem.rightBarButtonItem = menu
現状すべてのViewのViewWillAppear
で、この処理を記述しています。
しかしこれをすべての画面に実装し、ボタン押下時の処理まで書くとかなりのコード量になると思います。
###試したこと
UINavigationController
クラスをカスタムし、NavigationController
に関連付けたが表示されなかった。
###補足情報(言語/FW/ツール等のバージョンなど)
・Xcode8.2.1
・Swift3
###追記
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) { let image = #imageLiteral(resourceName: "header_nav").withRenderingMode(.alwaysOriginal) let menu = UIBarButtonItem(image: image, style: .done, target: self, action: nil) navigationController.navigationItem.rightBarButtonItem = menu }
###追記2
イメージとしてですが「Custom Navigation」に先程のメニューアイコン追加の処理を書くと
「なびげーしょんばー」の画面では表示されません。
これを「Custom Navigation」1箇所に書くだけで、
「なびげーしょんばー」「なびげーしょんばー2」の画面に継続して表示させることは可能なのか。という質問になります。
「Custom Navigation」のみに記載しただけではだめな場合、別に方法はあるのでしょうか。
やはり各画面で実装していくしかないのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/27 08:37 編集
2017/02/27 08:53
2017/02/27 09:08
2017/02/27 09:16
2017/02/27 09:17
2017/02/27 09:21
2017/02/27 09:38