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

时间:2015-12-02 22:01:26

标签: ios cocoa-touch segue uistoryboardsegue 3dtouch

有没有办法在-[UIViewController performSegueWithIdentifier:sender:]之外以编程方式获取故事板中创建的segue?

理想情况下,我希望能够在故事板中创建segues,在代码中获取这些segue,并检索这些segues'目标视图控制器。对我来说,这比使用视图控制器标识符(例如[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"identifier"]

更清晰,更易于维护

使用的一个例子是实现3D触摸深按手势来查看和弹出一个视图控制器,否则通过传统的segue访问该视图控制器。

1 个答案:

答案 0 :(得分:1)

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

目标c

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

<强>夫特

let segueTemplates = self.valueForKey("storyboardSegueTemplates")