在UISegment控件中设置编辑

时间:2012-12-31 23:53:43

标签: ios uisegmentedcontrol

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

1 个答案:

答案 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;
    }];