如何重新加载我的UIViewController点击一些button?

我正在开发一个iPhone应用程序,我有一个UIViewController类,其中一些覆盖streamanimation是在那里,并根据devise我有一些5button在我的视图上每个button有一个IBAction方法单击button我需要显示不同的一组覆盖stream与不同的数据和覆盖stream的计数也从1button行动改变到另一个。 我的问题是如何刷新我的网页(重新加载)点击这些button,因为我知道显式调用viewDidLoad是一个非常糟糕的主意,所以我怎么能做到这一点? 提前感谢任何帮助,谢谢。

获取视图重绘的最简单方法是调用[UIView setNeedsDisplay]或使用[UIView setNeedsDisplayInRect]。 这种方法告诉视图,它需要重新绘制自己和它的子视图。 但是,你不应该总是这样称呼它。 还有其他的方法可能会导致视图重绘自己。 例如,如果使用[UIView addSubview:]或[UIView removeFromSuperview]将视图添加或删除到视图层次结构中。

这些方法导致系统调用你的视图的drawInRect:方法(假设你用自定义绘图代码覆盖它)。 如果你没有覆盖自定义绘图的方法,那么它应该会导致你的子视图接收到相同的消息,以便他们有机会重画。

更多信息在这里。 具体阅读“视图绘制周期”部分。

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

为什么要重新加载页面呢?如果是因为你正在改变你的视图而你想重画页面,你可以调用:

 setNeedsDisplay(); 

但是这通常是不需要的,因为每当一个视图边界改变时,就会自动为你调用。

如果其他东西太多,而不是刷新/重新加载viewDidLoad方法中的部分内容,则可以将刷新的部分提取到私有方法中,例如methodA。 每次你点击你的button,你调用该方法A。 不过我认为methodA仍然需要调用setNeedsDisplay或者重新绘制你感兴趣的部分。 希望能帮助到你。

如果你的观点是刷新“UIViewController”,那么:

 [self viewDidLoad]; 

来源: 如何以编程方式刷新UIViewController?

 To Refresh your UIViewController, When Clicking the button >> Add the below code into your UIButton method, -(IBAction)button:(id)sender{ [self viewDidLoad]; [self viewWillAppear:YES]; } Now Build and Run Your Code. 

使用函数viewWillAppear()。每次调用视图时调用该函数。