2014-12-20 4 views
0

Я создал контроллер вида в didFinishLaunching метод AppDelegate и назначил его контроллеру корневого окна.Проблема с ориентацией при загрузке раскадровки - iOS

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     // Override point for customization after application launch. 
     window = UIWindow(frame: UIScreen.mainScreen().bounds) // issue with allocating UIWindow 
     self.viewController = AKSidePanelController() 

     self.viewController!.centerPanel = UINavigationController(rootViewController: UIStoryboard.centerViewController()!) 

     window!.rootViewController = self.viewController 
     window!.makeKeyAndVisible() 
     return true 
    } 



func shouldAutorotate() -> Bool { 
     return true 
    } 

    func supportedInterfaceOrientations() -> Int { 
     return UIInterfaceOrientation.Portrait.rawValue | UIInterfaceOrientation.LandscapeLeft.rawValue | UIInterfaceOrientation.LandscapeRight.rawValue 
    } 

По некоторым причинам автоматическое вращение не работает. Я думаю, проблема связана с тем, что вы выделили окно в didfinishlaunching. Когда я пытаюсь запустить непосредственно из раскадровки (пометив isInitialViewController = yes) без добавления кода на didFinishLaunching, работает авторотация. Как вы можете видеть, мне нужно загрузить «viewController» как rootviewcontroller. Что я делаю неправильно?

Я использую Xcode 6.1

Landscape

enter image description here

ответ

0

Проблема заключается в том, что я загрузке Вид из раскадровки, а также инициализацией вид контроллера в didFinishLaunchingOption в App делегата. решение состоит в том, чтобы не загружать начальный вид из раскадровки.

Набор IsinitialViewController ни к чему и загрузить контроллер представления из AppDelegate

Это один помогает мне решить эту проблему. Programmatically set the initial view controller using Storyboards

Обратите внимание, что вы должны сделать «базовое имя основной раскадровки» пустым в plist.

Смежные вопросы