【问题标题】:Any way to fetch a segue (and destination view controller) programmatically?以编程方式获取segue(和目标视图控制器)的任何方式?
【发布时间】:2016-05-04 14:29:31
【问题描述】:

有什么方法可以在 -[UIViewController performSegueWithIdentifier:sender:] 之外以编程方式获取在情节提要中创建的转场?

理想情况下,我希望能够在情节提要中创建转场,在代码中获取这些转场,并检索这些转场的目标视图控制器。对我来说,这比使用视图控制器标识符(例如[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"identifier"])更简洁、更易于维护。

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

【问题讨论】:

  • 直到你调用 performSegueWithIdentifier: 之后,segues 才真正被创建,所以实际上没有任何东西可以获取。

标签: ios cocoa-touch segue uistoryboardsegue 3dtouch


【解决方案1】:

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

目标 c

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

斯威夫特

let segueTemplates = self.valueForKey("storyboardSegueTemplates")

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2011-07-06
    • 2013-04-14
    相关资源
    最近更新 更多