ネット上を調べるとSwiftでViewControllerをインスタンス化するためには、以下のコードがよく例としてあげられています。
Swift
1let storyboard = UIStoryboard(name: "Main", bundle: nil) 2let firstViewController = storyboard.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
storyboard名:Main
ViewController名:FirstViewController
しかし、これで取得したインスタンスを用いてFirstViewController上の部品にアクセスしようとしてもnilになってしまって、上手くインスタンスが取得できていないようです。
(storyboardに配置しているFirstViewContorllerのインスタンスとは別のインスタンスが作成取得されてしまっているのでしょうか?)
storyboard.instantiateViewControllerというのはどのように使用するもので、どのようにインスタンスを作成すればいいのでしょうか。
ご教示頂けますと幸いです。
よろしくお願いいたします。
↓以下追記
Swift
1//FirstViewController 2@IBOutlet weak var labelA: UILabel! 3. 4. 5. 6func test() { 7 labelA.text = value.stringA 8} 9 10```Swift 11 12```Swift 13//SecondViewController 14let storyboard = UIStoryboard(name: "Main", bundle: nil) 15let firstViewController = storyboard.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController 16firstViewController.loadViewIfNeeded() //追加しました 17firstViewController.test()
回答5件
あなたの回答
tips
プレビュー