在我的代码中,我有:
@property (weak, nonatomic) IBOutlet UIBarButtonItem *btnStart;
然后:
- (void)viewDidLoad {
[super viewDidLoad];
self.btnStart.enabled = NO;
}
按钮将颜色变为灰色,如果我触摸它,则没有任何反应,它是正确的。我还有另一段代码:
-(void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state {
if (state == MCSessionStateConnected) {
NSLog(@"I'm connected to peer '%@'", peerID.displayName);
self.btnStart.enabled = YES;
}
}
问题是按钮在我触摸之前不会改变颜色。 NSLog完美运行。
答案 0 :(得分:3)
您需要更新主线程上的UI元素。
做这样的事情:
dispatch_async(dispatch_get_main_queue(), ^{
//add the needed code below
self.btnStart.enabled = YES;
});