3

在 iOs 中,我使用导航控制器导航(推送),并在 viewDidLoad 中启动请求。此请求可能需要很长时间,如果用户不想等待请求,我希望他们能够返回。

问题是导航栏中添加的后退按钮似乎被阻止,直到请求完成。该按钮会记住用户交互以及请求完成时自动返回。

该请求有一个用于响应的委托方法,当应用程序进入该方法时,按钮会唤醒并返回。

如果我在请求期间触摸,则触摸/单击效果不会出现在按钮上,并且在请求结束时也不会出现。当我等到结束时,按钮对触摸/单击按钮具有正常效果。

4

2 回答 2

0

为此,您可以像这样启用按钮属性。

 [button setEnable:Yes];
 [button setEnable:Yes];

也用这个

 [button setuserintractionEnable:no];
于 2012-05-03T09:43:49.123 回答
0

在后台线程中调用您的请求

    [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]; }

如果您需要更多规格,请告诉我

于 2012-05-03T09:48:35.920 回答