отобразить правый раздел таблицы - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть табличное представление, и я переключаю его dataDource с двумя UIButtons (как вкладки).

- (IBAction)dataToggler:(id)sender {
    int buttonTag = ((UIButton*)sender).tag;

    if(_firstTab.selected && buttonTag != 1){

        AppDelegate *myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
        myAppDelegate.isFeatured = TRUE;
        [myAppDelegate loadEvents];

        numberOfSections = 1;

        _firstTab.selected = NO;
        _secondTab.selected = YES;

    } else if(_secondTab.selected && buttonTag != 2){

        AppDelegate *myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
        myAppDelegate.isFeatured = FALSE;
        [myAppDelegate loadEvents];

        numberOfSections = 2;

        _firstTab.selected = YES;
        _secondTab.selected = NO;
    }
    [tableView reloadData];

}

Каждый раз, когда я нажимаю на одну из кнопок, мой xml анализируется и добавляется в отдельные массивы; Массивы содержат список событий (например, первый раздел с событиями now и второй с остальными).

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

Прямо сейчас, если выбрана вторая вкладка (кнопка), я получаю пустую таблицу ...

Мои файлы кода: myViewController и myAppDelegate

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Если бы это был я, я бы, вероятно, сохранил свои данные в 2d массиве, тогда у вас будет следующее:

  • (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView {// Возвращаем количество разделов.вернуть [self.2darray count];}

  • (NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: (NSInteger) section {return [[self.2darray objectAtIndex: section] count];}

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

  • (CGFloat)[[self.2darray objectAtIndex: section] count] <= 0) return 0; </p>

    return 44;}

Это довольно аккуратно и аккуратно и будет работать независимо от количества строк и разделов, которые вы создаете.Надеюсь, это поможет.

1 голос
/ 14 ноября 2011

В вашем источнике данных tableView реализуйте этот метод:

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return 2;
   }


 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
     if ( [self tableView:tableView numberOfRowsInSection:section] > 0 ) {
         // INSERT YOUR HEADER STRING "times" array here.
         return [NSString stringWithFormat:@"section %d",section];
     } else {
         return nil;
     }
  }
...