在 iOs 中,我使用导航控制器导航(推送),并在 viewDidLoad 中启动请求。此请求可能需要很长时间,如果用户不想等待请求,我希望他们能够返回。
问题是导航栏中添加的后退按钮似乎被阻止,直到请求完成。该按钮会记住用户交互以及请求完成时自动返回。
该请求有一个用于响应的委托方法,当应用程序进入该方法时,按钮会唤醒并返回。
如果我在请求期间触摸,则触摸/单击效果不会出现在按钮上,并且在请求结束时也不会出现。当我等到结束时,按钮对触摸/单击按钮具有正常效果。
在 iOs 中,我使用导航控制器导航(推送),并在 viewDidLoad 中启动请求。此请求可能需要很长时间,如果用户不想等待请求,我希望他们能够返回。
问题是导航栏中添加的后退按钮似乎被阻止,直到请求完成。该按钮会记住用户交互以及请求完成时自动返回。
该请求有一个用于响应的委托方法,当应用程序进入该方法时,按钮会唤醒并返回。
如果我在请求期间触摸,则触摸/单击效果不会出现在按钮上,并且在请求结束时也不会出现。当我等到结束时,按钮对触摸/单击按钮具有正常效果。
为此,您可以像这样启用按钮属性。
[button setEnable:Yes];
[button setEnable:Yes];
也用这个
[button setuserintractionEnable:no];
在后台线程中调用您的请求
[self performSelectorInBackground:@selector(startRequest) withObject:nil];
并且对于核心数据也要记住这一点。这是您的 UI 将被释放,请求将继续在后台线程中工作,然后在返回按钮上实现请求取消
将 obj 初始化为
Obj *obj = [[Obj alloc] initWithDelegate:self 选择器:@selector(requestFinished)]; [self performSelectorInBackground:@selector(startRequest:) withObject:obj]; obj 具有属性 SEL 选择器和 id 委托;
当请求完成时
检查是否 ([obj.delegate respondsToSelector:obj.selctor]) { [obj.delegate performSelector:obj.selector]; }
如果您需要更多规格,请告诉我