Подтвердить что ты не робот

IOS Переключение между 2 навигационными контроллерами

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

Как я могу переключиться с одного контроллера навигации на другой, когда пользователь зарегистрировался.

Спасибо

введите описание изображения здесь

Я проверяю, является ли пользователь зарегистрированным делегатом приложения:

 // Check if user is log
    let currentUser = PFUser.currentUser()
    if currentUser != nil {
        // Do stuff with the user
    } else {
        // Show the signup or login screen
        let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("LogInController") as! UINavigationController
        self.window?.rootViewController = nav
    }

РЕШЕНИЕ: выглядит как работает
Когда пользователь нажимает кнопку входа в систему:

let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("MainNavController") as! UINavigationController
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.window?.rootViewController = nav
4b9b3361

Ответ 1

Решение 1

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

Решение 2

В качестве альтернативы вы можете представить новый навигационный контроллер по модулю поверх материалов входа, с основным контроллером в качестве его корня. Он будет просто представлен поверх него.

Решение 3

Вы также можете сначала рассмотреть возможность создания контроллера навигации с главным контроллером представления и представления над ним контроллера навигации для входа. Затем, когда пользователь будет входить в систему, вы просто отклоните контроллер навигации входа, отображающий главный контроллер представления.

Ответ 2

Установите идентификатор раскадровки навигационного контроллера

    let navigationController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SecondNavigationController")
    self.presentViewController(navigationController, animated: true, completion: nil)

Надеюсь, это поможет.:)