2015-11-05 2 views
1

В моей раскадровке у меня есть UITableViewController с статическими ячейками и 4 разделами.Второй вид таблицы в UITableViewController

  • Раздел 1 с 6 рядами и 1-й строкой высотой намного выше других.
  • Раздел 2 с 1 рядом.
  • Раздел 3 с 4 рядами.
  • Раздел 4 с 1 рядом.

В строке раздела 4, я добавил в UITableView (table2) с динамической клетки (без заголовка, 1 раздел только).

Так я последовал за несколько постов, и имел некоторые коды ниже:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    if tableView == table2 { 
     return 1 
    } 
    return super.numberOfSectionsInTableView(tableView) 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if tableView == table2 { 
     return 4 
    } 
    return super.tableView(tableView, numberOfRowsInSection: section) 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if tableView == table2 { 
     let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as! CustomerCellView 
     cell.setCustomCell() 
     return cell 
    } 
    return super.tableView(tableView, cellForRowAtIndexPath: indexPath) 
} 

При запуске, он строит успешно. Таблица по умолчанию отображается правильно, но таблица2 нет. table2 казалось следовать формату таблицы по умолчанию, так что проблемы

  • table2 также показывает тот же заголовок, как первый заголовок таблицы по умолчанию, даже я не ставил.
  • Если я установил число строк больше 6, приложение разбилось в симуляторе.
  • я поставил точку останова в tableView == table2, то компилятор сделал переходит в, если заявление
  • table2 делегат и источник данных подключены к самому UITableViewController.

Если кто-нибудь знает, что проблема мой код имеет, или кто-нибудь знает, как добавить второй TableView в UITableViewController

ответ

0

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

Успехов, Aj

+0

Спасибо за ответ. Я попытался это сделать, но когда я установил 'static cells' в' UIViewController', есть красная ошибка msg: «статические представления таблицы действительны только при встраивании в экземпляры UITableViewController» – Jimmy

+0

Вы сделали источник данных и делегировали выходы? –

+0

И добавить делегата в класс контроллера вида? –

1

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

Так вместо того, чтобы положить UITableView в статической камере, я положил Container View внутри клетки (в моем случае, первая строка раздела 4), который embedded другому UITableViewController или UIViewController зависит от ваших потребностей. Соответствующие коды таблиц переходят в другой новый файл. И как настроить новую таблицу, как обычно.

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