3

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

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

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

如果在请求期间触摸,触摸/点击效果不会出现在按钮上,并且它不会在请求结束时出现。当我等到结束时,该按钮对于被触摸/点击的按钮具有正常效果。

+0

你主线程被阻塞的请求。请张贴一些代码。 –

+0

@fsant如果你发现你的答案从下面的帖子,请告知我们 – vishiphone

回答

0

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

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

也用这个

[button setuserintractionEnable:no]; 
+0

我敢肯定,这不是问题。显然,按钮*是*启用(你可以从问题中得知)。 –

+0

然后@凯他究竟想要什么,如果你明白请编辑问题。 – vishiphone

+0

我不认为,有任何需要编辑的东西。这是完美的描述,该按钮在请求期间被阻止,但在此之后,它的作品...因此,该按钮显然是启用。 –

0

拨打backgroundthread您的要求

[self performSelectorInBackground:@selector(startRequest) withObject:nil]; 

,并永远记住这个核心数据量太大。这是您的UI将rleased并请求将继续在后台线程 工作,然后执行这些要求取消后退按钮

初始化OBJ时

的OBJ * OBJ = [[的OBJ页头] initWithDelegate:自选择器:@selector(requestFinished)]; [self performSelectorInBackground:@selector(startRequest :) withObject:obj]; obj具有属性SEL选择器和id委托;

当请求完成

检查 如果([obj.delegate respondsToSelector:obj.selctor]) { [obj.delegat performSelector:obj.selector]; }

告诉我,如果你需要更多的规范

+0

这个问题是,当请求完成时,代理没有被唤醒,我得到的回复 – fsantaolaya

+0

@fsantaolaya如果你想去任何地方与你的问题,请张贴一些代码 –

+0

你可以发送具有选择器和委托的对象,并在请求完成时回拨。我在几分钟后再次编辑它后再次看到答案 – Saad