Closed2

【Swift】画面遷移 0->1

yoshitakayoshitaka

画面遷移

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 <- ナブバー① 効かない

yoshitakayoshitaka

わかったこと

NavigationController -> TabbarControllerの遷移後に元のnavigationControllerをいじろうとすると値が
取れなかったり、変わらなかったりする。
と言うことで、この展開はnavcon -> tabcon -> navconでやった方が良い
ちなみに最初のnavconを無くそうとしたが、pushViewConができないとmodalになるので良くない。
最初のnavigationControllerでnavbarを消してpushVIewすれば、遷移先VCであえてself.navigationController.isNavigationBarHidden = falseをしない限り出てこない。(これ出してもいじれないから消しておいた方がよし)Navbarを使いたいならNavigationController②を使えば良いし、もし戻りたいなら新たに画面遷移を作ってあげばよし。

このスクラップは2021/05/19にクローズされました