0

我正在开发一个 iPhone 应用程序,我的 AppDelegate 中有一个 UINavigationController。我在其他视图上有刷新按钮。按钮在单击按钮时有一个 IBAction 方法。我正在使用此代码

 [AppDelegate.navigationController.topViewController.view setNeedsDisplay];

我的问题是如何在单击这些按钮时刷新我的页面(重新加载),setNeedsDisplay 方法不称为视图生命周期方法,例如。viewDidLoad,viewWillAppear

我这样做是正确的还是有办法做我所做的?

提前致谢。

4

2 回答 2

2

您应该编写一个(或两个,或更多)方法来刷新您需要的数据,而不是重新加载 viewController。这将在您稍后添加功能时避免附带问题。

于 2012-11-07T17:02:07.767 回答
0

setNeedsDisplay 不会调用视图控制器生命周期方法,如 viewDid/Will ... - 您在 UIView 上调用 setNeedsDisplay,而不是在 UIViewController 上。

setNeedsDisplay 触发 UIView 及其子视图的重绘;在视图的 drawRect: 中放置一个断点,按下按钮时会看到它被击中。

于 2012-11-07T13:04:27.870 回答