我正在使用UISplitViewController和UISegmentedControl编写通用应用程序。 UISegmentedControl中的每个控制器都允许编辑。当段成为当前段时,似乎必须重新建立控制器的编辑状态。我的问题是由[vc setEditing:YES animation:NO]
引起的奇怪动画。有人可以建议我如何避免这种情况吗?谢谢。
- (void)segmentChanged:(UISegmentedControl *)sender
{
UIViewController *vc = [self viewControllerForSegmentIndex:sender.selectedSegmentIndex];
[self addChildViewController:vc];
[self transitionFromViewController:self.currentViewController toViewController:vc duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
[self.currentViewController.view removeFromSuperview];
vc.view.frame = self.view.bounds;
[self.view addSubview:vc.view];
[vc setEditing:YES animated:NO];
} completion:^(BOOL finished) {
[vc didMoveToParentViewController:self];
[self.currentViewController removeFromParentViewController];
self.currentViewController = vc;
}];
答案 0 :(得分:0)
为避免不适当的动画,我完成了使用setEditing和viewWillAppear显示控制器的准备工作。
[self transitionFromViewController:self.currentViewController toViewController:vc duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
[self.currentViewController.view removeFromSuperview];
vc.view.frame = self.view.bounds;
[self.view addSubview:vc.view];
[vc setEditing:YES animated:NO];
[vc viewWillAppear:NO];
} completion:^(BOOL finished) {
[vc didMoveToParentViewController:self];
[self.currentViewController removeFromParentViewController];
self.currentViewController = vc;
}];