2014-01-07 2 views
0

Я пытаюсь, чтобы мой TableView в моем контроллере представления возвращал несколько разделов. Однако всякий раз, когда я это делаю и вставляю текст в заголовок раздела, я получаю черный экран, но никаких ошибок. Тем не менее, переход к одному разделу и отсутствие текста заголовка, введенного в раскадровку или в коде, покажет представление таблицы правильно. Есть ли что-то, что я делаю неправильно?Вид таблицы черный, когда есть несколько разделов

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

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    if (section == 0) 
    { 
     return @"Header1"; 
    } 
    else if (section == 1) 
    { 
     return @"Header2"; 
    } 
    return nil; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 4; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    long num = indexPath.row; 
    UITableViewCell *cell; 
    switch (num) 
    { 
     case 0: 
      cell = self.firstCell; 
      break; 
     case 1: 
      cell = self.secondCell; 
      break; 
     case 2: 
      cell = self.thirdCell; 
      break; 
     case 3: 
      cell = self.fourthCell; 
      break; 
    } 
    return cell; 
} 
+1

Это не проблема нескольких 'разделов'. Вы не занимаетесь «ячейкой». Сначала используйте Intialize 'cell', чтобы использовать его. –

+0

Попробуйте инициализировать ячейку, чтобы отображать в ней значения. – iEinstein

ответ

2

Ваша ячейка не инициализирована, поэтому сначала ее интеридируйте. И для получения дополнительной информации см. Этот код.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     if(indexPath.section == 0) 
     { 

      static NSString *cellIdentifier = @"Cell"; 

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
      if (!cell) 
      { 
       cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
      } 
      switch (indexPath.row) 
      { 
       case 0: 
        cell = self.firstCell; 
        break; 
       case 1: 
        cell = self.secondCell; 
        break; 
       case 2: 
        cell = self.thirdCell; 
        break; 
       case 3: 
        cell = self.fourthCell; 
        break; 
      } 
      return cell; 
} 
else 
{ 
     static NSString *cellIdentifier = @"Cell"; 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
     if (!cell) 
     { 
      cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
     } 
     switch (indexPath.row) 
     { 
      case 0: 
       cell = self.firstCell; 
       break; 
      case 1: 
       cell = self.secondCell; 
       break; 
      case 2: 
       cell = self.thirdCell; 
       break; 
      case 3: 
       cell = self.fourthCell; 
       break; 
     } 
     return cell; 
    } 
} 
+0

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

+0

@MattS Извините, я не собираюсь следовать за вами. Поэтому, пожалуйста, сделайте меня более ясным ... –

+0

[Это похоже на это] (http://i.imgur.com/bEKVurv.png), когда я добавляю четыре новые ячейки, чтобы перейти со второй секцией. –

Смежные вопросы