从模态视图转换到模态父级中的下一个视图控制器

时间:2011-04-15 16:50:05

标签: iphone objective-c

我有一个导航控制器推入视野的MyViewControllerA。 MyViewControllerA显示MyModalViewController。 MyModalViewController有一个按钮,按下按钮会将MyViewControllerB推到MyViewControllerA的顶部。我创建了一个委托,因此MyModalViewController可以告诉MyViewControllerA一个按钮是按下的,所以MyViewControllerA可以将MyViewControllerB放在它上面。

是否有一种从MyModalViewController过渡到MyViewControllerB的简洁方法。我在推送MyViewControllerB后试图解除模态视图,但是当你正常使用导航控制器向下钻取时,它并没有给我那个平滑的动画。

1 个答案:

答案 0 :(得分:0)

正如你所说,你有代表可以告诉ControllerA关于按下按钮。现在你需要做的是在ControllerA中有一个标志(我们将用它来告诉A关于按下按钮):

  1. 最初将此标记设为false(在viewDidLoad中)。
  2. 在A的pushController方法中为B编写viewWillAppear代码并进行检查:

    if(flag)
        push B.
    
  3. 当您按下modalViewController中的按钮时,请设置此标记并将其关闭。
  4. 当此视图被取消时,您的viewWillAppear方法将被调用,如果设置了标志,它将推送B.
  5. 如果动画仍不流畅,请使用viewDidAppear方法而不是viewWillAppear

    感谢。