Navigation Controllerを使って画面遷移をさせようとしているのですが、右から真ん中へ遷移するときにThread 1: signal SIGABRT
になってしまいます。
以前は同じやり方をしてもエラーにならなかったのですが、なぜでしょうか?
Storyboard、エラーメッセージ、ViewController.swiftは以下の通りです。
errormassage
12019-01-19 11:06:49.953160+0900 test[25938:4428696] libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType is not supported on this platform. 22019-01-19 11:06:53.392363+0900 test[25938:4428696] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<test.ViewController: 0x7fbdd1c2c620>) has no segue with identifier 'toViewController''
ViewControllerswift
1 2//右のViewControllerとリンクしています 3//真ん中VCから右のVCへのStoryboard Segueのidは toViewController です 4//真ん中VCの「次の画面に遷移」をctrlを押しながら"show"で右のVCとつなげました。 5 6import UIKit 7 8class ViewController: UIViewController { 9 10 11 @IBOutlet weak var nextButton: UIButton! 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 // Do any additional setup after loading the view, typically from a nib. 16 } 17 18 19 @IBAction func nextButton(_ sender: Any) { 20 DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { 21 self.performSegue(withIdentifier: "toViewController", sender: nil) 22 } 23 } 24}
またこのようにセグエを接続すると画面遷移はできますが、次の画面へ進むようになってしまいます。
「真ん中の画面に戻る」ということを実現したいです。
追記 : Unwindを使って前の画面に遷移させようとした場合
TopViewController
1import UIKit 2 3class TopViewController: UIViewController { 4 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view, typically from a nib. 9 } 10 11 override func didReceiveMemoryWarning() { 12 super.didReceiveMemoryWarning() 13 // Dispose of any resources that can be recreated. 14 } 15 16 @IBAction func backToTop(segue: UIStoryboardSegue) { 17 18 } 19 20}
ViewController
1import UIKit 2 3class ViewController: UIViewController { 4 5 6 @IBOutlet weak var nextButton: UIButton! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 // Do any additional setup after loading the view, typically from a nib. 11 } 12}
Nextボタンをcntrlを押しながらExitまでドラッグし、接続しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。