如何跨两个故事板执行自定义segue?

时间:2014-10-28 15:03:54

标签: ios objective-c iphone uiviewcontroller segue

所以我继承了一个工作中的旧项目,它被分解成了大量不同的故事板。虽然这并没有太多的麻烦,但客户现在想要一个自定义的segue动画,从Storyboard A上的View Controller到Storyboard B上的View Controller,我无法弄明白我的生活

如果视图位于同一个Storyboard上,我就可以制作动画了,但是我无法将它连接到另一个故事板的转换。

2 个答案:

答案 0 :(得分:1)

如果不使用技巧,则无法执行此操作,因为无法在故事板之间连接segue。您可以在另一个故事板中手动实例化控制器,然后执行您想要呈现的任何自定义动画或将其推送到代码中。由于使用segue的主要原因(与在代码中转换到新控制器相反)是您可以在故事板中看到控制器之间的连接,因此没有太多理由在您的情况下使用segue。

如果你真的坚持使用segue,那么你需要在你连接自定义segue的第一个故事板中放置一个“虚拟”控制器。该segue中的代码为您想要在另一个故事板中转换的真实控制器切换虚拟控制器。您可以在此处找到对该技术的引用,http://spin.atomicobject.com/2014/03/06/multiple-ios-storyboards/

答案 1 :(得分:0)

查找以下用于访问其他故事板视图的代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"storyboard_A_view_identifier"]) {
      UIStoryboard *storyBoardB = [UIStoryboard storyboardWithName:@"storyBoardB" bundle:nil];
      UIViewController *anotherViewController = [storyBoardB instantiateViewControllerWithIdentifier:@"storyboard_B_view_identifier"];
      // use anotherViewController and perform custom animation on it
    }
}