Как установить ViewController в root при подключении к контроллеру навигации - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь вызвать функцию popToRootViewController из контроллера вида, который подключен к navigationController.Когда я удалил это navigationController, я смог перейти к своему RootViewController.Но если есть контроллер навигации, подключенный к (Мой случай: TableViewController) ViewController.popToRootViewController получится с navigationController

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.section == 2 && indexPath.row == 0 {
        Utilities.shared.clearTokens()
        navigationController?.popToRootViewController(animated: false)
    }
}

Storyboard

1 Ответ

0 голосов
/ 31 января 2019

Насколько я понимаю, вы хотите всплыть в свой корневой viewController, когда пользователь нажимает кнопку выхода, вы должны изменить корневой контроллер приложения, вы можете сделать это следующим образом

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let newViewController = let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let rootViewController = storyBoard.instantiateViewController(withIdentifier:"your identifier")
let appdelegate = UIApplication.shared.delegate as! AppDelegate
appdelegate.window!.rootViewController = rootViewController

, потому что navigationController?.popToRootViewController(animated: false) появится на корневом контроллерев вашем текущем стеке навигации

...