0

我正在使用一个控制器(MAIN)来管理如何在其主视图中显示 2 个其他控制器(A 和 B)视图。在主控制器视图中,我在主视图 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 的最佳方法是什么?

4

1 回答 1

1

可能是 SDK 中的错误。OpenRadar有一个错误报告,正是这种行为。

于 2011-04-16T14:59:29.173 回答