UIBarButton игнорирует "setEnabled: YES" - PullRequest
3 голосов
/ 23 февраля 2010

Я столкнулся с проблемой. Я не могу представить, почему это происходит, наверное, вы, ребята, можете.

Я создал UIBarButtonItem в IB и правильно связал его. Установить свойство и синтезировать его. Вначале я отключил btn (viewWillAppear). Затем я пытаюсь добавить запись в мою базу данных mysql:

NSString *URLStr = [NSString stringWithFormat:@"http://www.justfortestingandsoon.com/example.php?entry=%@", myEntry];
URLStr = [URLStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSLog(@"URLStr: %@",URLStr);
NSURL *addURL = [NSURL URLWithString:URLStr];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:addURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0];
            urlConnectionSet = [NSURLConnection connectionWithRequest:urlRequest delegate:self];

В «didReceiveData ...» я проверяю, какое значение возвращается:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    NSData *myData;
    myData = data;
    NSString *testString = [[NSString alloc] initWithData:myData encoding:NSASCIIStringEncoding];
    NSLog(@"receivedData: %@", testString);
if ([testString isEqualToString:@"ENABLED"]) {
        self.notificationBtnDeactivate.enabled = YES;
    }
...

Я уже отладил это. Строка self.notificationBtnDeactivate.enabled = YES; вызывается, но без каких-либо заметных изменений в пользовательском интерфейсе.

Есть идеи?

Большое спасибо!

1 Ответ

1 голос
/ 28 октября 2010

У меня есть две идеи для этого:

  1. на кнопки неправильно ссылаются из IB, добавьте NSAssert и проверьте против nil
  2. вы вносите изменения в пользовательский интерфейс не в том потоке. Попробуйте использовать executeSelectorOnMainThread: withObject: waitUntilDone:
...