У меня есть UITableViewController и не хочу использовать раскадровку.Как изменить класс UITableView программно?
Как я знаю, UITableViewController заботится о инициализации UITableView, подключая его к его источнику данных и делегированию. Это хорошо работает в моем случае.
Теперь я хотел бы изменить класс UITableView на пользовательский класс (BVReorderTableView). Это было бы легко сделать в IB. Однако, как только я сделаю это программно, мой UITableView пуст, то есть он, кажется, отключен от своего источника и делегата.
Вот что я делаю в моей инициализации в UIViewController:
-(id)init
{
self = [super initWithStyle:UITableViewStyleGrouped];
if (self) {
// Custom initialization
self.tableView = [[BVReorderTableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
self.tableView.dataSource = self;
self.tableView.delegate = self;
}
Что я делаю неправильно?
Вы проверили источник данных? Являются ли методы делегатов запущены (NSLog в них)? – Bourne
Я бы реализовал это в viewDidLoad, а не в init. – Cutetare
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath не запускается @Bourne. Но - (NSString *) tableView: (UITableView *) tableView titleForHeaderInSection: (NSInteger) раздел ... как проверить источник данных? Я имею в виду, что все хорошо, если я не использую свой собственный класс BVReorderTableView. Большое спасибо! –