2015-06-30 1 views
1

У меня есть сегментированный контроль над двумя UITableViews, один из которых расположен над другим. Когда segmentedControl.selectedSegmentIndex == 1 скроется один из этих табличных видов. Проблема, однако, в том, что я не могу настроить пользовательские ячейки второго представления таблицы в моей одной функции cellForRowAtIndexPath. Я продолжаю получать: Variable 'cell' used before being initialized.Возвращение двух ячеек в cellForRowAtIndexPath с использованием сегментированного управления

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     switch segmentedControl.selectedSegmentIndex { 
     case 0: 
      var cell = tableView.dequeueReusableCellWithIdentifier("CellOne", forIndexPath: indexPath) as! CellOne 

      return cell 

     case 1: 

      var cellTwo = tableView.dequeueReusableCellWithIdentifier("CellTwo", forIndexPath: indexPath) as! CellTwo 

      return cellTwo 

     default: 
      var cell: UITableViewCell 
      return cell 
     } 


    } 

ответ

1

У вас есть ветка по умолчанию с не инициализированной переменной ячейки, которую вы возвращаете. Я бы рекомендовал изменение следующим образом:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let result: UITableViewCell 

    if (segmentedControl.selectedSegmentIndex == 0) { 
     var cellOne = tableView.dequeueReusableCellWithIdentifier("CellOne", forIndexPath: indexPath) as! CellOne 
     //Configure here 
     result = cellOne 
    } else { 
     var cellTwo = tableView.dequeueReusableCellWithIdentifier("CellTwo", forIndexPath: indexPath) as! CellTwo 
     //Configure here 
     result = cellTwo 
    } 

    return result 
} 
+0

Какое решение тогда? – chicobermuda

+0

@dprek Я обновил свой ответ. Я сделал предположение в коде, что всегда выбран какой-то сегмент, поэтому мы всегда показываем либо CellOne, либо CellTwo, и никаких других вариантов нет. –

+0

И как мне настроить, т. Е. Метку в CellOne и UIImageView в CellTwo? – chicobermuda