查找从何处打开ViewController

时间:2018-09-03 09:57:44

标签: ios swift uiviewcontroller

我有一个TableViewController和2种到达那里的方法。 一个是来自Viewcontroller的segue(显示),它是导航控制器的根控制器,它本身也是我的Tab Bar Controller的一个选项卡。 第二,tableVC也是另一个导航控制器的根VC,它也是该选项卡栏控制器中的一个选项卡。这是一个例子: storyboard

现在我想检查viewDidLoad是否是我的TableVC,是通过第一种方式还是通过第二种方式调用它。我如何找到答案?

2 个答案:

答案 0 :(得分:0)

您可以在视图控制器中添加一个属性,以指示它的来源……

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
    }
}

答案 1 :(得分:0)

非常简单,只需在要显示的viewController上添加一个变量,假设var vcOpenedBy = ""

现在启动此ViewController时,只需使用此var并打印您喜欢的任何内容

让vc = VcController(nibName:“”,bundle:nil) vc.vcOpenedBy =“ NavigationMethod”

,在您进行查询时,您也可以使用vcOpenedBy 并使用字符串“ SqgueMethod”

现在在viewDidLoad()中的该viewController上 只需打印此vc即可。就是这样