transitionFromView和索引

时间:2011-04-16 14:45:21

标签: objective-c ios uiviewanimation

我正在使用控制器(MAIN)来管理在主视图中如何呈现2个其他控制器(A和B)视图。 在MAIN控制器视图中,我在MAIN视图xib中创建了一个BUTTON。 按钮必须超过A和B视图。

所以这是我需要的视图层次结构:

MAIN.VIEW
      |------A or B view (index 0)
      |------BUTTON      (index 1)

这里我如何创建A和B进入MAIN:

//MAIN CONTROLLER viewDidLoad
- (void)viewDidLoad {
    [super viewDidLoad];

    self.A = [[A alloc] init];
    self.B = [[B alloc] init];

    //Start from A view visible in MAIN
    [self.view insertSubview:self.A.view atIndex:0]; 
}

在特定的动作调用后,我想插入控制器B视图并删除A. 我阅读了有关transitionFromView的内容,并尝试以这种方式使用它:

[UIView transitionFromView:self.A.view
                    toView:self.B.view
                  duration:1.0
                   options:UIViewAnimationOptionTransitionFlipFromRight
                completion:^(BOOL finished) {
                    if (finished) {
                        //nothing for now...
                    }
                }]; 

这里的问题是翻转后的动画B视图在BUTTON上面并且在我的层次结构中没有完全取代A的位置(A在索引0处)

我可以将此代码添加到完成块:

[self.view sendSubviewToBack:self.B.view];

但我认为这是一个有点棘手的解决方案:P(并且它也不是一个好的解决方案,因为它看起来似乎在动画结束时有效且图形效果不佳......)

确保A和B位于索引0的最佳方法是?

1 个答案:

答案 0 :(得分:1)

可能是SDK中的错误。有一个Bug report at OpenRadar正是这种行为。