SwiftでNavigationControllerを使用した際にperformSegueWithIdentifierでエラー
Swift(iOS SDK8.4)で、NavigationControllerを使用して基点となるA画面からB画面に画面遷移を行うアプリケーションを構築しようとしていますが、
A画面で画面遷移をさせるボタンを押下した際に実行される performSegueWithIdentifier() で、「has no segue with identifier 'next'」という内容で NSInvalidArgumentException が発生してしまい、行き詰まってしまっています。
NavigationControllerは以下のとおりAppDelegateに定義しています。
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var mainNavigationCtrl: UINavigationController?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let first = FirstViewController()
mainNavigationCtrl = UINavigationController(rootViewController: first)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = mainNavigationCtrl
self.window?.makeKeyAndVisible()
return true
}
}
Storybord上にA画面とB画面をsegueで紐付けており、名前は'next'と定義しています。
A画面からB画面へは値を渡したいので、下記のとおりにコーディングしました。
class FirstViewController() {
func onClick() {
self.performSegueWithIdentifier("next", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "next") {
var view = segue.destinationViewController as! SecoundViewController
view.lblName = self.Name.text!
}
}
}
AppDelegateのNavigationControllerをコメントアウトすると、performSegueWithIdentifierが正常に動作し、prepareForSegueへ処理が遷移してB画面へ値を渡した状態で遷移できました。
エラー解決方法や、そもそも実現方法に誤りがある等々、ご回答お願いします。