dismissViewControllerAnimated忽略过渡样式

时间:2014-01-27 14:42:12

标签: ios objective-c dismiss

我对dismissViewControllerAnimated有点麻烦,我无法让它执行某个转换。

我有一个视图控制器(home),我正在使用模态打开另一个VC(登录)。 然后我可以在2个模态(登录和注册)之间导航,但我想要一个按钮返回到我的第一个视图控制器(主页)。

           HOME
            |
            |
            |Modal
            |
            |
  LOGIN----------REGISTER
       <- Modal ->

现在,Login和Register之间的转换设置为Horizo​​ntal Flip。 这很好。

在我的登录视图中,我有一个关闭模态的按钮,以便返回主页。 但过渡总是与之前使用的过渡相同(在这种情况下为水平翻转)

即使指定一个modalTransitionStyle也无济于事,它仍然使用以前的样式。

非常感谢任何想法。 以下是我到目前为止所尝试的内容。

- (IBAction)cancelAccount:(id)sender {

    self.view.window.rootViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self.view.window.rootViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
    [self.view.window.rootViewController dismissViewControllerAnimated:YES completion:nil];
}

谢谢, 阿德里安

1 个答案:

答案 0 :(得分:3)

这些行都做同样的事情:

self.view.window.rootViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self.view.window.rootViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];

所以你只需要使用其中的一个。

但是,您应该在实际转换的视图控制器上设置转换样式,而不是在根视图控制器上(仅管理转换过程)。

即。在取消它们之前,在登录和注册视图控制器上设置过渡样式。