Я искал решение похожей проблемы.В моем случае я хотел, чтобы просмотр таблицы связывался с несколькими подробными видами в зависимости от выбора.Я мог наложить данные на один viewcontroller, но искал лучшее решение.Вот что я сделал.Он простой и работает намного лучше, чем некоторые из сложных и устаревших опций, которые я нашел до сих пор.
Я просто передал ID раскадровки в инспекторе удостоверений контроллеру представления, который я хотел показать в подробном представлении («второй»).) и после didSelectRowAtIndexPath я просто добавил:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
}
Поэтому, когда кто-то нажимает ячейку в главном представлении, подробное представление выдвигается.
Простой оператор if может переключать отображаемое представление:
if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"Second Choice"]) {
TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
else if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"First Choice"]) {
TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"first"];
[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
};
Вы можете просто использовать кнопки, переключатели или что-то еще вместо представления таблицы, но смысл в том, что, добавив "«Идентификатор раскадровки» в «Identity Inspector»
и просто создание экземпляра контроллера представления путем ссылки на «Идентификатор раскадровки» и последующее его перетаскивание на контроллер разделения представления по индексу 1 (подробности), его просто и быстро
TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];