[swift] segueで画面遷移時の値の受け渡し

目次

segueで画面遷移時の値の受け渡し

サンプルコード

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        if (segue.identifier == "segue") {
            var secondView : SecondViewController = segue.destinationViewController as SecondViewController
            secondView.varItem = varItem
        }
    }

*secondViewControllerにもvarItemという変数を準備しておくこと

別のNavigationController上のviewControllerへの受け渡し

別のNavigationController上のviewControllerへの受け渡しする時には上のコードで実行すると

Could not cast value of type 'UINavigationController'

というエラーが発生する

回避するコードは以下の通り

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        if (segue.identifier == "segue") {

            let nav = segue.destinationViewController as! UINavigationController
            let secondView = nav.topViewController as! SecondViewController
            secondView.varItem = varItem
        }
    }

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です