如何检测哪个segue标识符激活当前视图控制器

时间:2017-07-19 15:57:03

标签: ios objective-c segue

我只是在寻找一种方法来检测哪个Segue Identifier激活了当前的viewController。我需要这样做,因为我有可能无法满足的条件,但可以从另一个viewController引用,然后我想使用该特定的segue ID突出显示一些标签。有没有人需要这样做?你是怎么做到的?

2 个答案:

答案 0 :(得分:2)

可能你应该在你的"当前视图控制器上创建"用于存储segue名称的属性,然后在控制器上使用segue实例化当前视图控制器"你在激活segue执行之前分配它:

<强>的ObjectiveC:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"YourSegueName"]) {

    // Get destination view
    CurrentVC *vc = [segue destinationViewController];

    // Get button tag number (or do whatever you need to do here, based on your object
    vc.segueName = @"YourSegueNam";
}}

斯威夫特3:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "YourSegueName"
    {
        if let destinationVC = segue.destination {
            destinationVC.segueName = segue.identifier
        }
    }
}

这就是你需要的吗?让我知道。 无论如何,我仍然不知道你为什么要那样做。

答案 1 :(得分:0)

这是不可能的。你不能简单地得到当前的Segue&#34;在应用程序的任何一点。因为Segues仅在您的Apps生命周期中的特定时间点存在。那就是当你的应用程序准备从一个视图控制器转换到另一个视图控制器时以及在实际视觉转换期间。 有关详情,请点击https://developer.apple.com/documentation/uikit/uistoryboardsegue