0

我正在使用 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;
    }];
4

1 回答 1

0

为了避免不合适的动画,我用setEditing和viewWillAppear完成了Controller显示的准备工作。

   [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;
    }];
于 2013-01-03T11:55:28.327 回答