【问题标题】:Reload data for UIView\UIViewController?为 UIView\UIViewController 重新加载数据?
【发布时间】:2012-05-04 20:24:35
【问题描述】:

当我从一个函数 [self makeButtons] 移动屏幕上的按钮时,除非我按下视图控制器然后弹回,否则什么都不会发生。 ViewController 是否有像 UITableViews 一样的重新加载数据功能?我正在使用 NavigationController,并且正在向 UISrollView 添加子视图并在屏幕上移动其他按钮。使用 ASIFORMHTTPRequest 获取数据后调用该方法。

编辑:很抱歉我没有详细说明。

我有一个方法正在发送 [request startAsynchronous] (ASIFORMHTTPrequest)。 我有一个包含我所有按钮的 NSMutableArray。请求完成后,一个名为 doneGettingRequest 的方法,如下所示。

- (void) doneGettingRequest(ASIFORMHTTPRequest *) request {
    [self removeButtons];
}

调用这个方法的;

- (void) removeButtons {
    NSLog(@"Removing buttons!");
    for (UIButton *button in gameButtons) {
        [button removeFromSuperview];
}

当我转到另一个视图时一切正常,然后再返回。问题是,如果在调用方法时显示该视图,它将不会刷新(这几乎总是会发生)。 gameButton 是一个 NSMutableArray,包含当前正在显示的按钮。删除它们后,我想添加一些其他按钮。问题是,调用 removeButtons 时按钮不会被删除。消息“正在删除按钮!”但是,显示了,因此正在调用该方法。

有什么建议吗? 谢谢

【问题讨论】:

  • 如果我做错了什么,我很抱歉......我对此完全陌生。
  • 你能显示你的代码吗?它会帮助我们帮助你。

标签: iphone ios xcode reloaddata


【解决方案1】:

您可以将您的逻辑放入您的 viewWillAppear。

在接收者的视图即将添加到视图层次结构之前以及配置任何动画以显示视图之前调用此方法。

您可以重写此方法以执行与显示视图相关的自定义任务。

如果您覆盖此方法,您必须在您的实现中的某个时间点调用 super。

【讨论】:

  • 所有方法都在一个视图中调用,这也是当前视图。 viewWillAppear 会让视图更新/刷新吗?
  • 是的,我猜。你试过了吗?
【解决方案2】:

你试过了吗

 [view setNeedsDisplay];

【讨论】:

  • 是的,我试过了,它没有刷新我的视图。在我转到另一个视图然后弹回来之前没有任何变化......无论如何谢谢
  • 你是使用nib文件还是动态创建。
  • 按钮是以编程方式添加的,我使用的是 NavigationController 和 IB 故事板。
猜你喜欢
  • 2012-12-24
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
相关资源
最近更新 更多