当我从一个函数[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时不会删除按钮。消息“删除按钮!”但是,显示了,因此正在调用该方法。
有什么建议吗? 感谢
答案 0 :(得分:1)
您可以将逻辑放在 viewWillAppear 。
中在将接收者的视图添加到视图层次结构之前以及在配置任何动画以显示视图之前调用此方法。
您可以覆盖此方法以执行与显示视图相关联的自定义任务。
如果您覆盖此方法,则必须在您的实施中的某个时刻调用super。
答案 1 :(得分:0)
你试过吗
[view setNeedsDisplay];