UIBarButton игнорирует setEnabled:YES

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

Я создал UIBarButtonItem в IB и правильно связал его. A установил свойство и синтезировал его. В начале я отключил кнопку (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; вызывается, но без каких-либо заметных изменений в пользовательском интерфейсе.

Есть идеи?

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


person danielreiser    schedule 23.02.2010    source источник
comment
Я видел странное поведение с методом viewWillAppear. Попробуйте viewDidLoad или viewDidAppear и посмотрите, имеет ли это какое-то значение для вас. Если это так, это может указывать на неожиданное поведение в viewWillAppear. Просто и идея.   -  person Bart Gottschalk    schedule 23.02.2010
comment
Спасибо за помощь. Но если я пропущу метод viewWillAppear, метод didReceiveData также не активирует кнопку. :(   -  person danielreiser    schedule 24.02.2010


Ответы (1)


У меня есть две идеи на этот счет:

  1. кнопки не правильно ссылаются из IB, добавьте немного NSAssert и проверьте на nil
  2. вы делаете изменения пользовательского интерфейса не в том потоке. Попробуйте использовать performSelectorOnMainThread:withObject:waitUntilDone:
person Tim Büthe    schedule 28.10.2010