text.fieldの文字を次のビューで表示させたい。
XcodeでSwiftを用いてアプリ開発をしています。
一つ目のビューのtext.fieldで入力された文字を二つ目のlabelに表示させたいです。
http://swift-ios.keicode.com/ios/passing-values-between-views.php
このサイトを参考にやっています。
発生している問題・エラーメッセージ
Method does not override any method from its superclass destinationViewController' has been renamed to 'destination' Replace 'destinationViewController' with 'destination' Variable 'viewController2' was never mutated; consider changing to 'let' Replace 'var' with 'let'
該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 } 8 9 override func didReceiveMemoryWarning() { 10 super.didReceiveMemoryWarning() 11 // Dispose of any resources that can be recreated. 12 } 13 14 15 @IBOutlet weak var habit1: UITextField! 16 @IBOutlet weak var habit2: UITextField! 17 @IBOutlet weak var habit3: UITextField! 18 19 override func prepareForSegue (segue : UIStoryboardSegue, sender:AnyObject?) { 20 var viewController2 = segue.destinationViewController as! ViewController2 21 viewController2.text1 = habit1.text 22 } 23}
現状
このメソッドの引数として取得できる segue の destinationViewController プロパティで、画面遷移先のビューコントローラの インスタンスを取得できます。
今回は遷移先のビューコントローラクラスは上記で作成した ViewController2 であることが分かっていますので、 それへキャストしています。
as! で強制的なキャストを行っています。Swift のタイプキャストに付いては「タイプキャスト」をみてください。
以上で二個目のビューのビューコントローラへ値をセットできました。
オーバーライドできないと言われている気がしますが原因がわかりません。
かなりの初心者ですがよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Xcode Version 9.2 (9C40b)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。