如何从Storyboard中的VC代码创建多个segue

时间:2013-12-31 18:18:39

标签: ios storyboard segue rubymotion

我的故事板上有一个VC,想要以模态方式呈现它,或者将其推送到导航堆栈,具体取决于它的调用方式/位置。

根据我的阅读,我应该使用[UIStoryboardSegue segueWithIdentifier:source:destination:performHandler:]类方法来创建这个segue。但是,当我这样称呼时:

    manage_friends = App.delegate.storyboard
      .instantiateViewControllerWithIdentifier('ManageFriends');

    # segueWithIdentifier(NSString* identifier, source:UIViewController* source, destination:UIViewController* destination, performHandler:void (^)(void) performHandler)
    UIStoryboardSegue.segueWithIdentifier(
     'ManageFriendsPush',
      source: self,
      destination: manage_friends,
      performHandler: -> {
        pushViewController(manage_friends, animated: true)
      }
    )

我收到错误“嵌套推送动画可能导致导航栏损坏”,所以我不确定我是否正确执行此操作。

是否有其他方法可以创建push segue和modal segues?

1 个答案:

答案 0 :(得分:0)

你没有正确地做到这一点。方法segueWithIdentifier:source:destination:performHandler:使用您在IB中创建它的标识符,从故事板中加载已经定义的segue。它不会创建新的segue。

我认为Apple不打算让开发人员在代码中创建segues。

您可以使用instantiateViewControllerWithIdentifier:从故事板加载目标场景,然后在该目标视图控制器上执行推送或显示。

我经常想知道你是否可以使用alloc后跟initWithIdentifier创建一个新的segue:source:destination,但是从未尝试过。