【Swift】画面遷移 0->1
画面遷移
1 UINavigationController
2 VC①
self.navigationController?.setNavigationBarHidden <- 4でナブバー①が消えた
self.navigationController?.pushViewController( 3 )
3 UITabBarController
3-1 UINavigationController VC②
self.navigationController?.navigationBar.tintColor <- ナブバー②に効く
self.navigationController?.isNavigationBarHidden <- ナブバー①②効かない
self.navigationController?.setNavigationBarHidden <- ナブバー①②効かない
self.navigationItem.hidesBackButton <- 効かない もともとVCがrootなので戻るは存在しないか
self.navigationItem.title <- ナブバー②に効く
self.navigationItem.rightBarButtonItem <- ナブバー②に効く
3-2 VC③
self.navigationController?.navigationBar.tintColor <- ナブバー①に効く
self.navigationController?.isNavigationBarHidden = false <- ナブバー①に効く 消すと遷移元に依存
self.navigationItem.title <- ナブバー①に効く
self.navigationItem.hidesBackButton = true <- ナブバー① 効かない
わかったこと
NavigationController -> TabbarControllerの遷移後に元のnavigationControllerをいじろうとすると値が
取れなかったり、変わらなかったりする。
と言うことで、この展開はnavcon -> tabcon -> navconでやった方が良い
ちなみに最初のnavconを無くそうとしたが、pushViewConができないとmodalになるので良くない。
最初のnavigationControllerでnavbarを消してpushVIewすれば、遷移先VCであえてself.navigationController.isNavigationBarHidden = falseをしない限り出てこない。(これ出してもいじれないから消しておいた方がよし)Navbarを使いたいならNavigationController②を使えば良いし、もし戻りたいなら新たに画面遷移を作ってあげばよし。