如何检测哪个segue标识符激活当前视图控制器
问题描述:
我只是想找一种方法来检测哪个Segue标识符激活了当前viewController。我需要这样做,因为我有可能无法满足的条件,但可以从另一个viewController引用,然后我想使用该特定的segue ID突出显示几个标签。有没有人需要这样做?你是如何看待这个的?如何检测哪个segue标识符激活当前视图控制器
答
也许你应该创建你的“当前视图控制器”上的属性来存储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
}
}
}
这就是你需要的吗?让我知道。 无论如何,我仍然不知道你为什么想这样做。
答
这是不可能的。你不能简单地在应用程序的任何位置获取“当前Segue”。由于Segues仅存在于您的应用生命周期中的特定时间点。当你的应用程序准备从一个视图控制器转换到另一个视图控制器时,以及在实际的视觉转换期间。 欲了解更多信息请按照https://developer.apple.com/documentation/uikit/uistoryboardsegue
可能重复[如何检查使用哪个segue](https://*.com/questions/16167425/how-to-check-which-segue-was-used) –
我很感谢你试图缓解在SO @DávidPásztor上需要提问,但是您提到的问题与您的问题不适用。我也没有看到你的投票需要。对于在所有需要我的问题的情况下都有足够差异的问题,我有一个完美合理的问题。 –
你刚刚接受了一个与我链接的问题几乎相同的答案,所以你刚刚证明了我的观点。 –