Пользовательский переход в раскадровке

У меня есть приложение Master-Detail. Когда пользователь выбирает строку в MasterTable, я хочу открыть другую таблицу (не DetailViewController). Он должен быть бумажным помимо MasterViewController, подобно приложению Facebook на iPad.

У меня есть пользовательский переход от MasterViewController к этой таблице (DocumentViewController типа UITableViewController). Этот DocumentViewController «встроен» в навигационный контроллер.

Короче говоря, элементы моей раскадровки выглядят так:

NavigationController->MasterViewController->navigationController->DocumentViewController.

Переход от MasterViewController к navigationController.

Должен ли я выполнять переход в «didSelectRowAtIndexPath»? Или мне нужно использовать «performSegueWithIdentifier» в didSelectRowAtIndexPath?


person user1550951    schedule 16.08.2012    source источник


Ответы (1)


Если я правильно понимаю ваш вопрос, переход должен быть от MasterViewController к DocumentViewController. Обязательно присвойте ему уникальный идентификатор, а затем укажите, что вы хотите сделать, в prepareForSegue в вашем MasterViewController.

Пример:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showList"]) {

        // gets indexPath for the currently selected row in my UITableView
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        // pull back some useful data from Core Data according to what was selected in my UITableView.
        NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];

        // listDataItem is a property of the controller (in this case a UITableViewController)
        [[segue destinationViewController] setListDataItem:object];
    }
}
person FilmJ    schedule 16.08.2012
comment
это поможет мне отправить данные в DocumentViewController. Но как я могу анимировать переход, чтобы MasterVC перемещался влево, а DocumentVC располагался рядом с MasterVC? - person user1550951; 16.08.2012
comment
@NetToiOS, это может быть хорошей отправной точкой: stackoverflow.com/questions /9348605/. Кроме того, если это поможет, пожалуйста, примите ответ. - person FilmJ; 16.08.2012
comment
в примере используется UIViewController, могу ли я использовать UITableViewController, поскольку это то, что такое MasterViewController и DocumentViewController? И... я принял ответ :) - person user1550951; 16.08.2012
comment
я реализовал методы подготовки и выполнения. Но когда я запускаю приложение, ни одна из точек останова не срабатывает, когда я выбираю строку в MasterVC. Есть идеи, почему это так? - person user1550951; 16.08.2012
comment
Переход должен быть связан в вашей раскадровке с ячейки на ваш контроллер. Что касается использования UITableViewController... да, абсолютно, потому что они являются подклассами UIViewController и из-за полиморфизма. - person FilmJ; 16.08.2012
comment
:- Спасибо!! Я связывал переход от MasterVC к DocumentVC, и поэтому точка останова не срабатывала. Еще раз спасибо за помощь! - person user1550951; 16.08.2012