4386


セグエを使わない画面遷移についてなのですが、次画面に遷移した時にビルド画面が黒くなります。  
Storyboardを見てみると背景は白なのですが、ビルドすると何故か黒です。  
また設置したUI部品も表示されません。

そこで次画面におけるViewControllerで背景色のコードを打ち込むと、反映されます。  
(あまりコーディングは得意ではないので、なるべくStoryboardを使用して作業していきたいのですが……)

セグエを使わない画面遷移の場合、次画面の部品設置や背景などのカスタマイズなど、全てViewControllerでコーディングしなければならないのでしょうか？

それか、次画面においてStoryboardを反映させるための設定などあるのでしょうか？

お詳しい方がいましたら、ご回答宜しくお願い致します。

【補足】  
以下が現在の遷移元のViewControllerになります。  
コメントでご指摘してくださったことを試してみましたが、どうやら部品配置やサイズの見直し、Autolayoutをオフにしてみましたが画面は真っ黒のままです。  
一応遷移先の画面は分かりやすく青に設定したのですが、それすら反映されず……という状況です。

[code]

    import UIKit
    
    class ViewController: UIViewController {
    
    
        @IBAction func nextButton(sender: AnyObject) {
            //ボタン接続の上、セグエを使わずにコーディングだけで画面遷移
    
            // 遷移するViewを定義する.
            let mySecondViewController: UIViewController = SecondViewController()
    
            // アニメーションを設定する.
            mySecondViewController.modalTransitionStyle = UIModalTransitionStyle.PartialCurl
    
            // Viewの移動する.
            self.presentViewController(mySecondViewController, animated: true, completion: nil)
    
            }
    
        }
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    }
    
[/code]

【再補足】

回答でご指摘されたように、以下のコードを打ちましたが、  
(Storyboardの名前は"Main")

[code]

    let mySecondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() as UIViewController
    
[/code]

これでは遷移先であるSecondViewController.swiftとstoryboard内で「next」と名付けたViewControllerに繋がらないようです。


CC BY-SA 3.0
2015-01-10T15:14:54.890
4383
2015-01-11T04:40:57.560
2015-01-11T03:48:19.927
5832
5832
question
swift xcode storyboard
セグエを使わない画面遷移時の次画面が黒くなる


`let mySecondViewController: UIViewController =
SecondViewController()`でUIViewControllerを初期化した場合、Storyboardで設定した内容（Viewの配置とか背景色の変更とか）はmySecondViewControllerに反映されません。

mySecondViewControllerの初期化を以下のようにするとうまくいくと思います。

[code]

    let mySecondViewController = UIStoryboard(name: "Storyboardのファイル名", bundle: nil).instantiateInitialViewController() as UIViewController
    
[/code]

[補足]  
コメントにも書きましたが、mySecondViewControllerがinitial View Controllerではない場合は、以下のようになります。

[code]

    let mySecondViewController = UIStoryboard(name: "Storyboardのファイル名", bundle: nil).instantiateViewControllerWithIdentifier("Storyboard ID") as UIViewController
    
[/code]


CC BY-SA 3.0
2015-01-11T01:13:19.400
4386
2015-01-11T04:40:57.560
2015-01-11T04:40:57.560
5710
5710
4383
answer