我的故事板上有一个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?
答案 0 :(得分:0)
你没有正确地做到这一点。方法segueWithIdentifier:source:destination:performHandler:使用您在IB中创建它的标识符,从故事板中加载已经定义的segue。它不会创建新的segue。
我认为Apple不打算让开发人员在代码中创建segues。
您可以使用instantiateViewControllerWithIdentifier:从故事板加载目标场景,然后在该目标视图控制器上执行推送或显示。
我经常想知道你是否可以使用alloc后跟initWithIdentifier创建一个新的segue:source:destination,但是从未尝试过。