swiftで画面遷移をするコードを書いているのですが、うまくいきません。
実装しようとしている機能:navigationbar の右に配置したボタンをタップしてpush遷移する。
結果:実行してもエラーは出ないがタップしても遷移されない。タップしたときにボタンの関数の中にあるデバッグ用のprint文は実行されているのでボタン自体はできてそう。
swift初学者のため拙いコードかもしれませんがよろしくお願いします。
最初の画面
import UIKit class ViewController: UIViewController { let navBar = UINavigationBar(frame : CGRect(x: 0, y: 40, width: UIScreen.main.bounds.size.width, height: 100 )) let navItem : UINavigationItem = UINavigationItem(title: "タイトル") override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.gray navItem.rightBarButtonItem = UIBarButtonItem(title: "遷移", style: UIBarButtonItem.Style.plain, target: self, action:#selector(self.rightHandAction)) navBar.pushItem(navItem, animated: true) self.view.addSubview(navBar) @objc func rightHandAction(_ sender: UIBarButtonItem) { print("right bar button action") let vcC : UIViewController = viewControllerConfig() let naviVC : UINavigationController = UINavigationController(rootViewController: vcC) self.navigationController?.pushViewController(naviVC,animated: true) } }
遷移先の画面
import UIKit class viewControllerConfig: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.title = "Config" self.view.backgroundColor = UIColor.cyan } }
これは、全てコードベースで実装したほうがよろしいのでしょうか。
Storyboardベースで行った方が管理も設定も楽です。
回答1件
あなたの回答
tips
プレビュー