実現したいこと
コードでNavigationControllerを実装するとStoryBoardで設置しているオブジェクトが消えてしまうのでこちらをを表示したい。
発生している問題・エラーメッセージ
現在コードでNavigationControllerを実装したのですが、StoryBoard上に配置したオブジェクトが表示されません。
(コードで表示設定させたオブジェクトは表示される)
こちらについて表示する方法はありますか?
該当のソースコード
Swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 title = "FirstViewController" 10 view.backgroundColor = .systemBackground 11 12 let button = UIButton() 13 view.addSubview(button) 14 15 button.setTitle("Next Page", for: .normal) 16 button.setTitleColor(.purple, for: .selected) 17 button.backgroundColor = .systemCyan 18 button.addTarget(self, action: #selector(goToNextPage(_ :)), for: .touchUpInside) 19 20 //layout 21 button.translatesAutoresizingMaskIntoConstraints = false 22 button.widthAnchor.constraint(equalToConstant: 100).isActive = true 23 button.heightAnchor.constraint(equalToConstant: 44).isActive = true 24 button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 25 button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true 26 } 27 28 //Next Pageボタンが押されたときの処理 29 @objc private func goToNextPage(_ sender: UIButton) { 30 let secondViewController = SecondViewController() 31 navigationController?.pushViewController(secondViewController, animated: true) 32 } 33 34}
Swift
1import UIKit 2 3class SecondViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 8 title = "戻る" 9 view.backgroundColor = .systemBackground 10 } 11 12}
Swift
1import UIKit 2 3class SceneDelegate: UIResponder, UIWindowSceneDelegate { 4 5 var window: UIWindow? 6 var navigationController: UINavigationController? 7 8 func scene(_ scene: UIScene, 9 willConnectTo session: UISceneSession, 10 options connectionOptions: UIScene.ConnectionOptions) { 11 12 guard let windowScene = (scene as? UIWindowScene) else { return } 13 window = UIWindow(frame: UIScreen.main.bounds) 14 window?.windowScene = windowScene 15 let ViewController = ViewController() 16 navigationController = UINavigationController(rootViewController: ViewController) 17 self.window?.rootViewController = navigationController 18 window?.makeKeyAndVisible() 19 } 20 21 func sceneDidDisconnect(_ scene: UIScene) { 22 23 } 24 25 func sceneDidBecomeActive(_ scene: UIScene) { 26 27 } 28 29 func sceneWillResignActive(_ scene: UIScene) { 30 31 } 32 33 func sceneWillEnterForeground(_ scene: UIScene) { 34 35 } 36 37 func sceneDidEnterBackground(_ scene: UIScene) { 38 39 } 40 41} 42
このようなコードがあったとき
StoryBoard上にボタンを配置
試したこと
NavigationControllerのみのこちらのテストアプリを作成して、最低限の機能のみで実装してみて色々調査してみましたが原因がよく分かりません。
・ボタンの色を黒や青に変えるも表示されず。
・ViewController内の
view.backgroundColor = .systemBackground
こちらをコメントアウトすると画面が真っ黒に
画面の下に回ってしまっている?または見た目が同じViewを表示してしまっている?のかわかりませんが、こちらは何が起こっているのでしょうか?
詳しい方いらっしゃいましたらご教授ください。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー