【问题标题】:Animation of Back-Button broken after dismiss of Modal View Controller关闭模态视图控制器后后退按钮的动画损坏
【发布时间】:2013-07-23 12:53:54
【问题描述】:

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

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

这就是我展示模态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];
}

有没有人遇到过这样奇怪的问题??? 对于如何摆脱这种行为的任何想法,我都会很高兴。

提前致谢。

【问题讨论】:

  • 我看到这样的行为的一个原因是没有在 viewDidAppear 中调用 super(也可能在 viewDidLoad 和/或 viewDidDisappear 中)。
  • 是的,它在几个 Viewcontrollers 中丢失了,但是添加这些超级调用并没有帮助:-(
  • 你是对的!!!!!!

标签: ios uinavigationcontroller back-button presentmodalviewcontroller


【解决方案1】:

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

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

【讨论】:

  • 天哪,我不敢相信它又发生在我身上
  • 在我的例子中是viewDidAppear,但结果相同。底线:始终确保您委托给 super,除非您明确不想这样做。
猜你喜欢
  • 2012-08-11
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 2011-09-28
相关资源
最近更新 更多