Узнайте, откуда был открыт ViewController - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть TableViewController и 2 способа добраться туда. один - это переход (шоу) от Viewcontroller, который является корневым контроллером контроллера навигации, который сам является вкладкой моего контроллера панели вкладок. во-вторых, tableVC также является корневым VC другого контроллера навигации, который также является вкладкой в ​​этом контроллере панели вкладок. Вот иллюстрация: storyboard

Теперь я хочу проверить в viewDidLoad мой TableVC, вызывается ли он первым или вторым способом. Как я могу это узнать?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

очень просто, просто добавьте переменную вашего viewController, которую вы собираетесь отображать, допустим, var vcOpenedBy = ""

теперь, когда запускаете этот ViewController, просто используйте эту переменную и распечатайте все, что вам удобно, как этот

let vc = VcController (nibName: "", bundle: nil) vc.vcOpenedBy = "NavigationMethod"

и по вашему желанию вы также можете использовать этот vcOpenedBy и используйте строку "SqgueMethod"

теперь на этом viewController в viewDidLoad () просто распечатайте это VC. вот и все

0 голосов
/ 03 сентября 2018

Вы можете добавить свойство к вашему контроллеру представления, которое указывает, откуда оно появилось…

class MyTableViewController: UITableViewController {

    enum Source {
        case productList, basket
    }

    var source: Source!
}

затем

override func prepareForSegue(segue: UIStoryboardSegue, sender: Any?) {
    if let vc = segue.destination as? MyTableViewController {
         vc.source = .productList
    }
}

и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...