Вы должны создать подкласс tableViewController, который в конечном итоге появляется в стеке навигационного контроллера. Внутри подкласса tableViewController у вас должен быть массив (или некоторая другая структура данных) для хранения соответствующей информации, и она должна быть представлена как общедоступная (используя @synthesize). Затем, после того, как вы инициализируете новый tableView, но перед тем, как поместить его в стек, установите массив. Например, в вашем RootViewController.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
SubmenuViewController *svc = [[SubmenuViewController alloc] initWithStyle:UITableViewStyleGrouped];
svc.arr = someArray; //this array holds your entire Submenu, this should be based on whatever the user selected in newIndexPath.row
[svc setTitle:@"Some Title"];
[self pushViewController:svc animated:YES];
}
Поскольку SubmenuViewController является подклассом UITableViewController, внутри (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
, вы вернете правильную ячейку на основе массива arr.
Редактировать: я должен отметить, что в моем примере подклассы RootViewController UINavigationController