关闭模态视图控制器后,后退按钮的动画被破坏

时间:2013-07-23 12:53:54

标签: ios uinavigationcontroller back-button presentmodalviewcontroller

我这里有一个非常奇怪的问题。我有一个带Tabbar控制器和4个选项卡的应用程序,每个选项卡都有一个连接到Viewcontroller的导航控制器。一切都按预期工作,但现在我已经为几个视图添加了一个按钮,它会调用一个模态视图控制器来向上滑动并显示一些内容。在这个Modal VC中,还有另一个隐藏模态视图的按钮。 隐藏模态视图后,如果我点击导航栏中的后退按钮,视图不会返回动画,只是在没有动画的情况下立即显示上一个视图,而导航栏确实是动画的。但是,当我使用标签栏切换到另一个视图并立即切换回来时,它会突然再次开始工作。

我正在使用没有Storyboard的iOS SDK 6,因为我几年前在iOS 3.2上开发了这个应用程序

这就是我展示Modal VC的方式:

-(void)reportIssue{
    ReportIssueViewController *rivc = [[ReportIssueViewController alloc] initWithNibName:@"ReportIssueViewController" bundle:[NSBundle mainBundle]];
    [self.navigationController presentModalViewController:rivc animated:TRUE];
    [rivc release];
}

这就是我隐藏它的方式:

- (IBAction)cancelIssue:(id)sender {
    [self dismissViewControllerAnimated:TRUE completion:NULL];
}

有没有人有这样一个奇怪的问题? 关于如何摆脱这种行为,我会很高兴。

提前致谢。

1 个答案:

答案 0 :(得分:5)

我发现了问题。我已经将UITabbarController子类化了,我添加了一个-(void)viewWillAppear - 函数,我已经放了一些逻辑。不幸的是,我忘了在该函数中添加[super viewWillAppear:animated]调用。非常愚蠢的错误。

感谢rdelmar,他在我的问题的第一条评论中指出了可能的原因。