Я пришел на этот сайт, так как у меня была похожая проблема. На самом деле я делаю то же самое: у меня есть контроллер представления с двумя подпредставлениями (все они определены в раскадровке с множеством ограничений).
в containerviewcontroller в viewDidLoad я делаю те же вызовы, что и вы (но сначала я определил представление):
self.myTableViewController = (TodoListViewController *)[[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
self.myTableViewController.tableView = self.myTableView;
self.myTableView.delegate = self.myTableViewController;
self.myTableView.dataSource = self.myTableViewController;
Это работает для меня (я думаю, вот ваша проблема: у вас нет навигационного контроллера вокруг него.... и убедитесь, что выходы вашего табличного представления действительно подключены к раскадровке.).
Но настоящая проблема возникает после правильной проводки. Если вы переходите в ячейку, вы, вероятно, захотите передать некоторый идентификатор ячейки для nextView. Поскольку вы определили свой tableviewcontroller вручную, вызывается только ваш метод делегата didSelectRowAtIndexPath, но не метод prepareForSegue.
Я поиграл с созданием экземпляра контроллера представления из раскадровки.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"aStoryboard" bundle:nil];
self.myTableViewController = [storyboard instantiateViewControllerWithIdentifier:@"myTableViewID"];
но segue не вызывался. прямой вызов (performSegueWithIdentifier:...) не сработал, так как этот tableviewcontroller не управляется навигационным контроллером.
Для меня это закончилось тем, что метод prepareForSegue вызывается в containerViewController, который может делегировать вызовы своим подконтроллерам.
РЕДАКТИРОВАТЬ: На самом деле реальным решением является НЕТ. Существует объект «Контейнерное представление», который можно добавить к представлению и который определяет область контроллера представления, которая может включать в себя дочерний контроллер представления. Это то, что я действительно хотел сделать.
person
theguy
schedule
20.12.2012