2015-10-30 2 views
0

Привет, У меня есть контроллер входа в систему и мои представления в виде раскадровки. Контроллер начального представления указывает на панель приложений. Я проверяю приложение приложения appDelegate, если пользователь вошел в систему. После этого я (повторно) установил правильный UIViewController в качестве начального. Как-то приложение всегда переходит к контроллеру начального представления, а затем говорит, что мне нужно перейти на логин, потому что пользователь не вошел в систему ... Как я могу избежать этого?Решение начального контроллера представления перед завершением приложения Загрузка

Это мой текущий код.

dispatch_async(dispatch_get_main_queue(), { 
    let storyboard: UIStoryboard = UIStoryboard.init(name: "Main", bundle: nil) 
    if (settings.isLoggedIn()) 
    { 
     let vc: AnyObject! = storyboard.instantiateInitialViewController() 
     self.window?.rootViewController = vc as? UIViewController 
    } else { 
     let vc: AnyObject! = storyboard.instantiateViewControllerWithIdentifier("login") 
     self.window?.rootViewController = vc as? UIViewController 
    } 
}) 
+1

Почему dispatch_async? – Leonardo

+1

@ Leonardo, который был на самом деле очень хорошим, я подумал, что xcode будет жаловаться на то, чтобы делать материал с интерфейсом, не зациклившись на главном потоке. Я удалил его, и поток действительно жидкий. Думаю, это была моя ошибка. – Reshad

+0

Проблема с добавлением UI-файлов во вторичные потоки, но методы appDelegate всегда вызываются в основном потоке, поэтому вам не нужно беспокоиться о том, что там – Leonardo

ответ

0

как проверить пользователь вошел в систему или не ниже метода в AppDelegate

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    //check user logged or not, if true you can set the initial view controller given below 

    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let vc : UIViewController! = storyboard.instantiateViewControllerWithIdentifier("urcontroller") 

    let window = UIApplication.sharedApplication().windows[0] ; 
    window.rootViewController = vc; 

    return true 
} 
Смежные вопросы