LargeTitle遷移先の画面で導入してみたいと思い入れてみたのですがNavigationで戻った時にLargeTitleの状態を保持してしまっておりLargeTitleを導入してくない画面にまで影響が及んでしましました。
firstViewのページをLargeTitleではなく普通のNavigationにしたいのですがどうしたら良いでしょうか?
firstViewでは現在Navigationの設定は行なっておらずSceneDelegateでNavigationの設定を入れています。
swift
1func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 2 guard let scene = (scene as? UIWindowScene) else { 3 return 4 } 5 6 let window = UIWindow(windowScene: scene) 7 self.window = window 8 window.makeKeyAndVisible() 9 10 let vc = UINavigationController(rootViewController: ViewController()) 11 UINavigationBar.appearance().barTintColor = .green 12 UINavigationBar.appearance().tintColor = .white 13 UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] 14 window.rootViewController = vc 15 }
SecondViewではviewDidLoadの中で以下の処理を入れています
swift
1 let appearance = UINavigationBarAppearance() 2 appearance.configureWithDefaultBackground() 3 appearance.backgroundColor = .green 4 navigationController?.navigationBar.titleTextAttributes = [ 5 .foregroundColor: UIColor.white 6 ] 7 self.navigationController?.navigationBar.scrollEdgeAppearance = appearance 8 self.navigationController?.navigationBar.standardAppearance = appearance 9 10 //largeTitle表示 11 navigationItem.largeTitleDisplayMode = .always 12 navigationController?.navigationBar.prefersLargeTitles = true
SecondViewのdeinitの中で設定し治すコードを入れてみたのですが挙動に変化ありませんでした。
swift
1 deinit { 2 navigationItem.largeTitleDisplayMode = .never 3 navigationController?.navigationBar.prefersLargeTitles = false 4 5 }
どうすれば元の画面にLargeTitleの変化を伝播させないようにできるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/27 08:29
2020/03/27 08:44