Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从视图和索引转换_Objective C_Ios_Uiviewanimation - Fatal编程技术网

Objective c 从视图和索引转换

Objective c 从视图和索引转换,objective-c,ios,uiviewanimation,Objective C,Ios,Uiviewanimation,我正在使用一个控制器(MAIN),它管理如何在其主视图中显示其他两个控制器(a和B)视图。 在主控制器视图中,我在主视图xib中创建了一个按钮。 按钮必须位于A和B视图上方 这就是我需要的视图层次结构: MAIN.VIEW |------A or B view (index 0) |------BUTTON (index 1) 以下是我如何在MAIN中创建A和B: //MAIN CONTROLLER viewDidLoad - (void)viewDidLoa

我正在使用一个控制器(MAIN),它管理如何在其主视图中显示其他两个控制器(a和B)视图。 在主控制器视图中,我在主视图xib中创建了一个按钮。 按钮必须位于A和B视图上方

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

MAIN.VIEW
      |------A or B view (index 0)
      |------BUTTON      (index 1)
以下是我如何在MAIN中创建A和B:

//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视图是“结束”按钮,在我的层次结构中不完全取代A(A位于索引0处)

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

[self.view sendSubviewToBack:self.B.view];
但我认为这是一个有点棘手的解决方案:p(这也不是一个好的解决方案,因为它似乎有效地出现在动画的末尾,但图形效果不好……)


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

可能是SDK中的错误。这种行为有一个确切的解释。

是的!这正是我对我的应用程序所做的:P真倒霉!