こんにちは。
初心者です。3時間ほど粘りましたがわからないので質問させていただきます。
タイトル通りOSXのプロジェクトにおいて
Main.storyboardに設置したViewControllerをコード上で取得したいのですがうまくいきません。
let sb = NSStoryboard(name: "Main", bundle: nil)
let vc = sb.instantiateInitialController() as! ViewController
let vc2 = sb.instantiateController(withIdentifier: "MainView") as! ViewController
self,vc,vc2のviewが一致しないのはなぜなのでしょうか?
main.storyboard上の設定では
ViewControllerのisInitialController=true,
StoryBoardID="MainView"
としており問題ないとは思うのですが・・
最終的にはコード上でUIを作成してviewに追加したいのでviewを一致させたいのですが
うまくいかないのは私の把握漏れなのでしょうか?
わかる方よろしくおねがいします
以下ソースコードです
swift
1import Cocoa 2 3class ViewController: NSViewController{ 4 5 override func viewWillAppear() { 6 super.viewWillAppear() 7 8 let sb = NSStoryboard(name: "Main", bundle: nil) 9 let vc = sb.instantiateInitialController() as! ViewController 10 let vc2 = sb.instantiateController(withIdentifier: "MainView") as! ViewController 11 //self,vc,vc2はどれもmain.storyboardのViewControllerを取得してくると想定してたが 12 //どれも一致しない・・・なぜ? 13 14 //→false 15 if(vc.view==self.view){ 16 print("true") 17 } 18 else{ 19 print("false") 20 } 21 22 //→false 23 if(vc2.view == self.view) { 24 print("true") 25 } 26 else { 27 print("false") 28 } 29 30 //→false 31 if(vc.view == vc2.view) { 32 print("true") 33 } 34 else { 35 print("false") 36 } 37 38 } 39} 40 41
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/25 15:10
2019/12/25 23:31
退会済みユーザー
2019/12/26 12:55