Правильный способ наследования UITableViewController? - PullRequest
0 голосов
/ 28 марта 2012

Моя проблема в том, что я не могу показать унаследованный класс от UITableViewController со статическими ячейками. Я использую раскадровку для простой настройки пользовательских ячеек (я хочу получить приложение, подобное поведению) в UITableViewController. Но мне нужно вложить его в другой UIViewController, который показывает пользовательскую верхнюю панель (например, панель навигации). Поэтому, когда я загружаю свой UITableViewController с такой структурой:

#import <UIKit/UIKit.h>

@interface MyCoolTableVC : UITableViewController

@end

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

#import <UIKit/UIKit.h>
#import "MyCoolTableVCSubclass.h"
@interface MyCoolTableVC : MyCoolTableVCSubclass

@end

Я получаю этот результат:

enter image description here

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

UIViewController *vcToGo = nil;
UIStoryboard *storyBoard = [[UIStoryboard storyboardWithName:@"MyCoolStoryboard" bundle:nil] init];
vcToGo = [storyBoard instantiateViewControllerWithIdentifier:@"profileTable"];
[self.navigationController pushViewController:vcToGo animated:YES];

1 Ответ

2 голосов
/ 28 марта 2012

Чтобы использовать статические ячейки, источник данных табличного представления должен быть установлен в подкласс UITableViewController, и вы не должны самостоятельно реализовывать методы источника данных .

Базовый UITableViewController предоставляет все для табличного представления в собственной реализации cellForRowAtIndexPath и т. Д., Используя то, что вы положили в раскадровку.Поэтому, если ваш источник данных не наследуется от UITableViewController, он не сможет заполнить таблицу.

(примечание - это то, что, как я полагаю, происходит на основе моих собственных экспериментов, внутренности UITableViewControllerнедоступно для меня)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...