swiftのバージョンは2.2 です。関連付けは間違っていません。
画面Aから画面Bへパラメーターを渡しつつ画面遷移する処理を書いているのですが、screenBのhogeLabelがnilになってしまっています。
画面A ボタンを押す等で画面Bへ遷移するイベントを発生させる
swift
1class ScreenA : UIViewController{ 2 @IBAction func onTouch( sender: UIButton){ 3 let newView = ScreenB() 4 newView.setParam("ほげほげ") // 固定の値ではない 5 self.navigationController?.pushViewController(newView,animated:true) 6 } 7}
画面B。setParamされた値をUILabelに表示する
swift
1class ScreenB : UIViewController{ 2 @IBOutlet weak var hogeLabel : UILabel! 3 func setParam( key : String){ 4 self.hogeLabel.text = key // ここでnil 5 } 6 override func viewDidLoad(){ 7 super.viewDidLoad() 8 self.hogeLabel.text = xxx // ここではhogeLabelにちゃんと値が入っているのだが。 9 } 10}
ScreenBのクラスにプロパティを追加して、setParamされた値を覚えておいて、viewDidLoadが呼ばれた後にhogeLabelにセットすればいけると思うのですが、そのためだけにプロパティを追加する事に抵抗があります
プロパティを追加せず、ScreenBをインスタンス化した直後にIBOutletされたUIViewにアクセスする方法はありますでしょうか。
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー