アプリ起動時「func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation」が呼ばれません。


アプリ起動時にViewControllerを強制的に縦画面で表示したいのですが、

[code]

    func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
        return .Portrait
    }
    
[/code]

が呼ばれません。

SingleViewアプリケーションで以下のようにサンプルを作ってもよばれません。

[code]

    import UIKit
    
    class ViewController: UIViewController {
    
        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.
        }
    
        override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
            return .Portrait
        }
    
    
        override func shouldAutorotate() -> Bool {
            return true
        }
    
        override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
            return .All
        }
    
    }
    
[/code]

呼ばれるようにするにはどうすればいいのでしょうか？




それぞれの関数に `print(__FUNCTION__)` でも挿入していただければわかると思いますが、どの関数も正常に呼ばれています。  
（Xcode 7.2 / シミュレーター環境で確認）

アプリを強制的に縦画面で表示する方法ですが、コードから実現する場合、以下のコードだけで実現できるかと思われます。

[code]

    class ViewController: UIViewController {
        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.
        }
    
        override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
            return .Portrait
        }
    }
    
[/code]

もっと単純に、[Targets] - [Deployment Info]からDevice Orientationを指定する方法もあります。

[![デバイスの向きを指定](https://i.stack.imgur.com/7vGXH.png)](https://i.stack.imgur.com/7vGXH.png)

