1

我有一个带有两个子视图控制器的根视图控制器,分别称为 X 和 Y,它们都是 UIViewController 的同一子类的实例。(所以它们的外观和功能是相同的。)首先将 X 添加到根视图控制器,然后我们将添加 YXview 的框架是整个屏幕区域,并且 Y.view 的框架将向右偏移一个屏幕宽度(所以它完全在屏幕外)当 Y 被实例化时。

当用户按下按钮时,Y 被实例化并添加到根视图控制器,然后 X 和 Y 同时向左滑动一个屏幕宽度,这样 X.view 的框架退出舞台左侧,Y.view 的从舞台右侧进入. 执行此操作的动画有延迟。

我发现如果我单击 X 上导致 Y 实例化并触发此动画的按钮,然后在动画延迟期间单击 X 上的另一个按钮,则按钮单击不会传递给 X 上的按钮,而是传递给Y 上的类似按钮,以便它已经按下。

为什么会发生这种情况,解决方法是什么?

谢谢,

4

1 回答 1

0

您应该指定要保留在前面的视图以及要保留在背景中的视图:

IF X YOU WANT TO BECOME ACTIVE THEN- 
[self.view bringSubviewToFront:X.view]

IF Y YOU WANT TO BECOME INACTIVE THEN- 
[Y.view setUserInteractionEnabled:NO];

或尝试类似:

[[UIApplication sharedApplication].keyWindow addSubview:yourSubview]

或者

[[UIApplication sharedApplication].keyWindow bringSubviewToFront:yourSubview]
于 2013-10-15T09:56:17.323 回答