2015-01-06 3 views
0

Мне нужно проверить, зарегистрирован ли пользователь или нет, и перенаправить их соответственно. После добавления этого кода в делегат моего приложения мое приложение постоянно застревает в портретном режиме и не будет отображаться в ландшафте. Что я сделал не так? Я слышал кое-что о неправильном правильном представлении корневого представления или добавлении subviews или контейнеров и т. Д., Являясь проблемой. Что-то кажется неправильным ниже, что может заставить меня застрять так же, как и я?Застрял в портретном режиме

Спасибо!

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 

    //Redirect user to either home screen, or login/register screen 
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    var storyboard = UIStoryboard(name: "Main", bundle: nil) 
    var initialViewController = storyboard.instantiateViewControllerWithIdentifier("vcLoginGateway") as UIViewController 

    var userSettings = UserSettings() 

    //Change gateway view controller to the home view controller if logged in 
    if (userSettings.IsUserLoggedIn()) { 
     initialViewController = storyboard.instantiateViewControllerWithIdentifier("vcHome") as UIViewController 
    } 

    self.window?.rootViewController = initialViewController 
    self.window?.makeKeyAndVisible() 

    return true 
} 
+0

Думаю, вы правильно настроили ориентацию. Ваше приложение остается интерактивным после этого freez? – Rashad

ответ

0

Вы проверили, что ваша ориентация устройства проверена на «Пейзаж слева» и «Пейзаж справа»? Проверка сборки мишенями> Общие-> Развертывание Инфо-> Устройство ориентации

+0

yah это, безусловно, код выше, который я вставлял - когда я его изменяю или удаляю, все хорошо снова – NullHypothesis

0

Просто проверьте это:

var initialViewController = storyboard.instantiateViewControllerWithIdentifier("vcLoginGateway") as UIViewController 

var userSettings = UserSettings() 

//Change gateway view controller to the home view controller if logged in 
if (userSettings.IsUserLoggedIn()) { 
    initialViewController = storyboard.instantiateViewControllerWithIdentifier("vcHome") as UIViewController 
} 

Вы отлиты как в UIViewController, но вы должны сделать это, предположим, вам имя ViewController является NameOfYouViewController, так что вы должен написать:

initialViewController = storyboard.instantiateViewControllerWithIdentifier("vcHome") as NameOfYouViewController 

Надеется, что это помогает .. :)

+0

, похоже, не работает :((он работал в том смысле, что код работал, но ничего не изменилось) – NullHypothesis

1

Так что я в конечном итоге делаю мой шлюз Войти первоначальный вид контроллер, а затем в приложение делегата проверить это:

if (userSettings.IsUserLoggedIn()) { 
     var initialViewController = storyboard.instantiateViewControllerWithIdentifier("vcHome") as UITabBarController 
     self.window!.rootViewController = initialViewController 
    } 

Теперь это только проверяет, если вы вошли в систему, и если да перенаправляет вас соответственно. Это сработало, и теперь я могу повернуть свое устройство! Потрясающие. Спасибо всем