2015-12-02 5 views
4

Я переопределил moreNavigationController tableview, но я хочу использовать ту же строку, которая по умолчанию является родной moreNavigationController's tableview datasource (значок tabbaritem, имя и значок и т. Д.). Я попытался извлечь ячейку из существующего источника данных. Ниже приведен фрагмент кода:Настроить moreNavigationController's tableview и аналогичный пользовательский интерфейс

func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool 
{ 
    if (viewController == tabBarController.moreNavigationController && tabBarController.moreNavigationController.delegate == nil) 
    { 
     if tabBarController.moreNavigationController.topViewController?.view is UITableView 
     { 
      let view:UITableView = tabBarController.moreNavigationController.topViewController?.view as! UITableView 

      tblDataSource = view.dataSource 

      view.delegate = self 

      view.dataSource = self 
     } 
    } 

    return true 
} 


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

    let cell:UITableViewCell = tblDataSource?.tableView(tableView, cellForRowAtIndexPath: indexPath) 
    return cell 
} 

Но, это показывает мне пустую ячейку.

+0

Что вы имеете в виду под «moreNavigationControlle»? –

+0

moreNavigationController - 5-я вкладка ViewController, если UITabviewController содержит более пяти вкладок. См. Https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarController_Class/#//apple_ref/occ/instp/UITabBarController/moreNavigationController –

+0

. Ваш вопрос может касаться дополнительного описания вашей проблемы. – andrewbuilder

ответ

0

Хорошо, я не понимаю. Если вы хотите, чтобы такие же строки были родными, то почему бы вам переопределить методы UITableViewDataSource? Оставьте, как есть. Переопределите необходимые методы, которые вам нужны.

+0

Мне нужно возвращаемое значение shouldSelectViewController является ложным для одной вкладки. Вот почему я должен его переопределить. –

1

Вам необходимо реализовать следующий метод, чтобы правильно отобразить ячейки для «Дополнительно» вид контроллера:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { 
    tblDataSource?.tableView!(tableView, willDisplay: cell, forRowAt: indexPath) 
} 
Смежные вопросы