Обновление пользовательской ячейки uitableview - PullRequest
0 голосов
/ 02 августа 2011

У меня есть проблема, которая, вероятно, довольно проста, если ты не такой слепой, как я.У меня есть таблица с таможенными ячейками, которые берут информацию из источника данных.В этой пользовательской ячейке у меня есть кнопка, которая изменяет источник данных для всех ячеек.Нажатие кнопки в одной ячейке должно сделать все остальные ячейки темными.Источник данных изменен, однако моя проблема в том, что ячейки обновляются только при перетаскивании ячеек в табличном представлении.Метод, когда кнопка нажата, помещается в табличное представление и заканчивается на [tableview reloadData];но он обновляется только при перетаскивании.

Любая помощь приветствуется

- Обновление - ниже показан метод, вызываемый при нажатии кнопки.Случай переключения изменяет источник данных.Button.tag используется, чтобы увидеть, в какой ячейке нажата кнопка.

-(void)myPackageButtonPushed:(id)sender
{
   UIButton* myButton = (UIButton*)sender;
   NSLog(@"id %d",myButton.tag);
   int test=myButton.tag;
   for (int i=0; i<[packageList count]; i++) {
        TVPackage *tvpack=[packageList objectAtIndex:i];
        [tvpack setMyPackage:NO];
    }

    switch (test) {
        case 0:
            NSLog(@"0");
            [[packageList objectAtIndex:0] setMyPackage:YES];
              [[packageList objectAtIndex:1] setMyPackage:YES];

            break;
        case 1:
            NSLog(@"1");
            [[packageList objectAtIndex:0] setMyPackage:YES];
            [[packageList objectAtIndex:1] setMyPackage:YES];
            break;
        case 2:
            NSLog(@"2");
            [[packageList objectAtIndex:2] setMyPackage:YES];
            [[packageList objectAtIndex:3] setMyPackage:YES];
            break;
        case 3:
            NSLog(@"3");
            [[packageList objectAtIndex:2] setMyPackage:YES];
            [[packageList objectAtIndex:3] setMyPackage:YES];
            break;
        case 4:
            NSLog(@"4");
            [[packageList objectAtIndex:4] setMyPackage:YES];
            [[packageList objectAtIndex:5] setMyPackage:YES];
            break;
        case 5:
            NSLog(@"5");
            [[packageList objectAtIndex:4] setMyPackage:YES];
            [[packageList objectAtIndex:5] setMyPackage:YES];
            break;
        default:
            break;
    }

    [self.tableview performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
    }

1 Ответ

0 голосов
/ 28 ноября 2011

У меня не было связи между Интерфейсным Разработчиком и правильно настроенными классами. IB был установлен на UIViewController вместо моего конкретного класса. Спасибо за помощь и ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...