【问题标题】:how to get identifier of current segue如何获取当前segue的标识符
【发布时间】:2014-08-19 17:22:03
【问题描述】:

我在渲染视图时遇到了一个错误,但只有当用户点击 UINavigationController 中的后退按钮时。我正在考虑通过这样的方式来抑制有问题的代码:

if(currentSuge.identifier isEqualToString:@'pushItemSegue'){
   doCode // only in this situation
}

如何获取当前segue的标识符名称?

【问题讨论】:

  • 您是在问如何获得currentSegue
  • 是的,抱歉 - 如何在上面的示例代码中获取 currentSegue。尝试使用谷歌搜索 UIStoryboard - 不确定这是否在全球范围内可用,但希望 :)

标签: ios uistoryboard uistoryboardsegue


【解决方案1】:

这是不可能的。您不能简单地在应用程序中的任何位置获取“当前 Segue”。因为 Segue在您的应用程序生命周期中的特定时间点存在。那是当您的应用准备从一个视图控制器转换到另一个视图控制器时以及在实际的视觉转换期间。

您能做的最好的事情是覆盖-prepareForSegue: 并将 UIStoryboardSegue 作为属性存储在您的 ViewController 中的某处。

更多信息:https://developer.apple.com/library/ios/documentation/uikit/reference/UIStoryboardSegue_Class/Reference/Reference.html

【讨论】:

    【解决方案2】:
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
    
        //Here you have name of your segue
        NSLog(@"Segue name is %@", [segue identifier]);
    
        //Use this to performe some action
        if ([[segue identifier] isEqualToString:@"pushItemSegue"])
        {
            //your code
        }
    
        //Add this for next seque
        if ([[segue identifier] isEqualToString:@"secondSegue"])
        {
            //someting else
        }
    }
    

    【讨论】:

    • 这不是问题的正确答案。你应该重新阅读它。
    猜你喜欢
    • 1970-01-01
    • 2012-06-20
    • 2018-02-25
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多