2015-02-10 5 views
0

Я хочу, чтобы отобразить модальный контроллер представления пользователю должен не быть пользователь, вошедший в этом моя реализация метода:Set-контроллер Корневой к контроллеру представления модально

func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool 
{ 
    // Notifications 
    // 
    //  User 
    // 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "noCurrentUser:", name: UserCurrentUserNotSetNotificationName, object: nil) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "currentUserDidChange:", name: UserCurrentUserDidChangeNotificationName, object: nil) 

    // Root window 
    // 
    if managedObjectContext != nil && User.currentUser(managedObjectContext!) == nil 
    { 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 

     if let logInViewController = storyboard.instantiateViewControllerWithIdentifier("Log In View Controller") as? LogInViewController 
     { 
      window?.rootViewController?.presentViewController(logInViewController, animated: false, completion: nil) 
     } 
    } 

    return true 
} 

I включают уведомления, так как в настоящее время метод noCurrentUser: представляет мой контроллер журнала в виде модально и анимированный. Это хорошо работает, за исключением случаев, когда приложение запускается, пользователь видит вспышку приложения (контроллер корневого представления) до отправки уведомления и отображается модальный журнал просмотра.

Я попытался установить параметр модальной анимации на значение false при представлении, но поскольку он не является контроллером корневого представления, это все еще не работает.

Итак, как правильно установить контроллер корневого представления в контроллер модального представления, который затем я могу отклонить модально.

+0

Я дал ответ на аналогичный вопрос в другом вопросе: http://stackoverflow.com/q/26355847/1652710 Предоставлено это в Obj-C, но, надеюсь, вы можете перевести его в рабочий решение для вашей проблемы в Swift. – Stakenborg

ответ

0

Вы не можете. Контроллер корневого представления следует рассматривать как визуальное представление вашего приложения. Чтобы сделать этот модаль, подразумевается, что ваше приложение является модальным, что, очевидно, не так.

Что вы действительно хотите сделать, это представить контроллер модального представления, как первое, что видят пользователи. Это не то же самое, что и контроллер корневого представления.

Установите контроллер корневого представления на обычный контроллер вида (или контроллер навигации), а затем нажмите на него контроллер модального просмотра. Когда диспетчер модального просмотра отклонен, ваше приложение может начать работу.

+0

Итак, как и где я могу управлять контроллером журнала? Например, если VC модально представлен уведомлением, я должен отклонить его в соответствии с мотивом, и если он представлен как контроллер навигации, я хочу нажать на контроллер панели вкладок –

+0

Должен ли я использовать протокол в контроллере регистрации и управлять увольнением в контроллере представления представления через делегата? –

+0

Я не понимаю, о чем вы спрашиваете. Когда ваше приложение запустится, нажмите контроллер модального представления на контроллер корневого представления. Когда он отклоняет, обрабатывает результат и решает, куда идти. –

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