iOS8按钮设置启用不';行不通

iOS8按钮设置启用不';行不通,ios,uibutton,ios8,Ios,Uibutton,Ios8,我刚刚下载了iOS8 GM Seed,发现我的UIButtons(在购买应用内购买时设置为启用)不起作用 在 我有 [mainToneBtn setEnabled:YES]; iOS8之前的版本会将按钮更新为可单击,但不是现在。我没有做任何与此相关的更改,在调试中,上面的代码被命中。没有代码将其设置回setEnabled:否 有什么想法吗 谢谢 出于某种原因,这是可行的 [self performSelector:@selector(updateAllInAppPurchases) withO

我刚刚下载了iOS8 GM Seed,发现我的UIButtons(在购买应用内购买时设置为启用)不起作用

我有

[mainToneBtn setEnabled:YES];
iOS8之前的版本会将按钮更新为可单击,但不是现在。我没有做任何与此相关的更改,在调试中,上面的代码被命中。没有代码将其设置回setEnabled:否

有什么想法吗


谢谢

出于某种原因,这是可行的

[self performSelector:@selector(updateAllInAppPurchases) withObject:nil afterDelay:0.001];
按钮代码在UpdateAllianAppPurchases中


但我不知道为什么我必须在ios8中这样做。我会接受任何人的回答,谁能给我一个很好的解释,谢谢

我无法重现您的问题。无论出于何种原因,
ViewDidLoad
现在在
ViewController
生命周期中启用按钮似乎为时过早。我建议稍后在
viewdilayoutsubviews

中尝试启用它们。您是否在主线程上设置它们已启用?@Acey是的,此问题特定于ios8。在
viewdiload
中,is
mainToneBtn
为nil?@vacawama否,但您下面的答案有效。谢谢这对我有用,谢谢!但我仍然不明白为什么ios8的行为与ios7和之前的不同。实际上,将UpdateAllianAppBurchases放在ViewDidLayoutSubView中对我来说是个问题,因为我在这个viewController中有其他视图。显示任何其他视图都会导致加载ViewDidLayoutSubView。我只想在加载时激活UpdateAllianAppBurchases一次。向名为
inAppPurchasesUpdated
的类添加一个布尔属性或实例变量。在
ViewDidLoad
中将其设置为
NO
。在调用更新方法之前,请检查以确保它在
viewdilayoutsubviews
中为
NO
,然后在更新方法中将其设置为
YES
[self performSelector:@selector(updateAllInAppPurchases) withObject:nil afterDelay:0.001];