如何在没有动画的情况下以编程方式执行"show(例如Push)"segue?

Mor*_*len 2 objective-c storyboard ios segue swift

如何在没有动画的情况下以编程方式执行"show(例如Push)"segue?我发现的解决方案都没有与故事板中的解决方案相同.

Tim*_*eit 6

什么show (e.g. Push)SEGUE内部确实是调用
- [UIViewController中showViewController:发件人:]

在视图控制器本身上调用此方法将触发呈现正在传递的视图控制器的适当方式.

// Swift
self.showViewController(viewControllerToShow, sender: self)
// Objective-C
[self showViewController: viewControllerToShow sender: self];
Run Code Online (Sandbox Code Playgroud)

通过将调用包装在+ [UIView performWithoutAnimation:]块中,可以删除动画.

// Swift
UIView.performWithoutAnimation {
    self.showViewController(viewControllerToShow, sender: self)
}
// Objective-C
[UIView performWithoutAnimation:^void () {
    [self showViewController: viewControllerToShow sender: self];
}]
Run Code Online (Sandbox Code Playgroud)