启用后,UIBarButtonItem不会更改默认的蓝色

时间:2015-12-31 13:49:02

标签: ios objective-c uibarbuttonitem

在我的代码中,我有:

@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完美运行。

1 个答案:

答案 0 :(得分:3)

您需要更新主线程上的UI元素。

做这样的事情:

dispatch_async(dispatch_get_main_queue(), ^{ 
  //add the needed code below
  self.btnStart.enabled = YES; 
});