ボタンが反応せず困っております。
こんにちは。
Storyboardを使わないでなのですが、RootViewControllerにFirstViewControllerを
ペアレントしてFirstViewControllerのボタンを押したらSecondViewControllerに
遷移すると言うことをしたいのですが、ボタンが反応せず困っております。
お手数ですが、ご教授願えませんでしょうか?
よろしくお願いいたします。
発生している問題・エラーメッセージ
ボタンを押しても何も反応しない。
該当のソースコード
swift4
1 2 AppDelegate 3 4 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 5 self.window = UIWindow(frame: UIScreen.main.bounds) 6 self.window?.rootViewController = RootViewController() 7 self.window?.makeKeyAndVisible() 8 return true 9 } 10 11 RootViewController 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 let launchViewController: UIViewController = FirstViewController() 16 self.view.addSubview(launchViewController.view) 17 launchViewController.didMove(toParentViewController: self) 18 launchViewController.view.frame = UIScreen.main.bounds 19 self.view.addSubview(launchViewController.view) 20 launchViewController.didMove(toParentViewController: self) 21 } 22 23 func goSecondViewController() { 24 let nextViewController: UIViewController = SecondViewController() 25 let childViewController: UIViewController = self.childViewControllers.first! 26 childViewController.willMove(toParentViewController: nil) 27 childViewController.view.removeFromSuperview() 28 childViewController.removeFromParentViewController() 29 self.addChildViewController(nextViewController) 30 nextViewController.view.frame = UIScreen.main.bounds 31 self.view.addSubview(nextViewController.view) 32 nextViewController.didMove(toParentViewController: self) 33 } 34 35FirstViewController 36 37 @objc func pressButton(_ button: UIButton) { 38 let parentViewController = self.parent as! RootViewController 39 parentViewController.goSecondViewController() 40 } 41 42 override func viewDidLoad() { 43 super.viewDidLoad() 44 self.view.backgroundColor = UIColor.blue 45 let button = UIButton(frame: CGRect(x: 10, y: 10, width: 100, height: 100)) 46 button.backgroundColor = .gray 47 button.tag = 0 48 button.addTarget(self, action: #selector(FirstViewController.pressButton(_:)), for: .touchUpInside) 49 self.view.addSubview(button) 50 51 }
試したこと
FirstViewControllerのpressButtonの中身をviewWillAppearに書くと遷移できているので、ボタンが反応すれば解決かと思い思考錯誤しましたが、お手上げでした。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/02 10:34