未调用 iphone 视图控制器方法但视图显示

Posted

技术标签:

【中文标题】未调用 iphone 视图控制器方法但视图显示【英文标题】:iphone view controller methods not being called but view shows 【发布时间】:2011-04-08 03:15:04 【问题描述】:

I have a navigation controller with a UITableView which when goes to another view when a row is selected.当这加载时,断点会被击中。 目前很好。 当我点击后退按钮时,表格视图看起来很好,有数据。 然而,即使我在视图控制器中启用了断点,也没有像最初加载时那样被击中!但是,数据加载正常。现在唯一注册的断点是当我单击一行时 (didSelectRowAtIndexPath)。

【问题讨论】:

【参考方案1】:

您希望它中断的断点设置在哪里?

或许你需要在viewWillAppear方法中调用如下...

[self.table reloadData];

【讨论】:

【参考方案2】:

这取决于断点的实际位置。如果您在 viewDidLoad 方法中有一个断点,那么它只会在第一次创建视图时被调用一次。当您从另一个视图返回时,该视图不会再次加载。所以断点不会命中。但是会调用 viewWillAppear 方法。

【讨论】:

【参考方案3】:

您在此处使用导航控制器。导航控制器包含一个导航堆栈,其中包括一个相互叠加的 UIView,可见的位于顶部。

现在,假设表格视图已加载,然后您移动到另一个(现在是导航堆栈中最顶层的视图)。注意 - 表格视图没有消失。它就在您当前呈现的视图下方。

因此,当您移回表格视图时,它不会重新加载,因为它从未消失(释放),只是隐藏了。

上述情况也有例外,有时会释放屏幕上未显示的视图(例如内存不足的情况),但您不能指望它。

UINavigationController Class Referance 很好地解释了这个概念。

【讨论】:

以上是关于未调用 iphone 视图控制器方法但视图显示的主要内容,如果未能解决你的问题,请参考以下文章

调用控制器和方法时,导航栏图像未显示在 MVC 视图上

iPhone - 平滑显示 2 个连续的模态视图控制器

显示新视图控制器的最佳实践 (iPhone)

弹出视图控制器未显示

iPhone 抖动问题:加载 viewController 时未调用 viewDidAppear

Facebook iOs sdk iphone:从多个视图控制器调用