splitViewController如何在没有动画的情况下展示detailViewController?

6
我在想是否有可能显示详细的视图控制器而不会出现动画效果(从右侧滑入窗口)。我期望会有一个布尔类型的参数来控制动画,但似乎并没有。这是我所拥有的全部内容:
[self.splitViewController showDetailViewController:detailViewController sender:self];

我有点不明白这里缺少了什么?还是说没有办法做到这一点?
2个回答

6
可以使用UIView的类方法performWithoutAnimation来完成此操作,例如:
[UIView performWithoutAnimation:^{
    [self showDetailViewController:_detailedViewController sender:self];
}];

在我的情况下,使用 -[showDetailViewController:sender:] 在一个 UISplitViewController 和一个 UIWindow 根视图控制器上被调用是有效的。(截至 iOS 10.3 版本。) - Gary

0
两个选项:您可以使用委托来加载视图控制器。您需要实现splitViewController:showDetailViewController:sender:方法。或者,(尽管文档似乎不鼓励这样做),您可以直接将新的detailViewController分配给splitViewController的viewControllers属性:
NSArray *vcArray = @[self.splitViewController.viewControllers[0],detailViewController];
self.splitViewController.viewControllers = vcArray;

从技术上讲,您应该首先检查现有的viewControllers数组是否有两个元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接