2012-05-15 2 views
0

Я использую контроллер разделенного представления и хочу добавить несколько представлений таблиц в контроллер главного представления.didDeselectRowAtIndexPath, не вызванный из UITableViewController, добавленный в UIViewController из панели рассказов

Так что я могу использовать прототипы ячеек, которые (я считаю) вы можете получить только из UITableViewController. Я поместил UITableViewController во вторую раскадровку для приложения. Я тогда обосновывая его:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil]; 
MyTableViewController *myTableViewController = [storyboard instantiateInitialViewController]; 

Затем я добавить вид этого UITableViewController как подвид моего UIViewController.

[self.view addSubview:myTableViewController.view]; 

Когда я запустил это, я могу выбрать и выделить строки просто отлично. Но didSelectRowAtIndexPath почему-то не вызывается?

Спасибо за любую помощь, Richard

+3

Вы установили свойство 'delegate'' UITableView'? – mAu

+0

Я проверил в раскадровке, и делегат для UITableView настроен правильно. Должно быть, это то, что я добавил UITableViewController в UIViewController, который блокирует вызов, который я предполагаю. Но я получаю события касания, как я сказал, потому что строки выделяются, как ожидалось, когда они касаются. – Richard

+0

Где вы установили объект? У меня когда-то возникла проблема, установив делегата в представление таблицы в методе 'init'. Но вы должны сделать это после загрузки представления, поэтому 'viewDidLoad' будет правильным местом. Просто чтобы убедиться, что это не проблема. – mAu

ответ

1

Добавить эту линию

myTableViewController.view.delegate = myTableViewController;

или Убедитесь, что вы сделали то же самое в XIB (Interface Builder).

+0

Не удалось найти свойство myTableViewController.view.delegate. – Richard

1

Оказывается, мне нужно было добавить uitableviewcontroller в качестве дочернего контроллера uiviewcontroller. Недостаточно просто добавить один вид.

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