如何做一个" show(例如Push)"在没有动画的情况下编程?

时间:2015-06-22 19:20:09

标签: ios objective-c swift storyboard segue

如何进行"显示(例如推送)"在没有动画的情况下编程? 我发现的解决方案都没有与故事板中的解决方案相同。

1 个答案:

答案 0 :(得分:6)

show (e.g. Push) segue在内部做的是调用
 -[UIViewController showViewController:sender:]

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

// Swift
self.showViewController(viewControllerToShow, sender: self)
// Objective-C
[self showViewController: viewControllerToShow sender: self];

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

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