以编程方式获取segue(和目标视图控制器)的任何方法



有什么方法可以在-[UIViewController performSegueWithIdentifier:sender:]之外以编程方式获取故事板中创建的片段吗?

理想情况下,我希望能够在故事板中创建片段,在代码中获取这些片段,并检索这些片段的目标视图控制器。对我来说,这比使用视图控制器标识符(例如[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"identifier"])更干净、更容易维护。

使用的一个示例是实现3D触摸深按手势,以窥视和弹出通过传统segue访问的视图控制器。

要以编程方式获取segue,您可以使用以下代码,它将返回segue数组。

目标c

NSArray *segueTemplates = [(UIStoryboardSegue *) self valueForKey:@"storyboardSegueTemplates"] ;
  for (UIStoryboardSegue *string in segueTemplates) {
    NSLog(@"%@", string.identifier);
  }

Swift

let segueTemplates = self.valueForKey("storyboardSegueTemplates")

最新更新