0

我有一个主从应用程序。当用户在 MasterTable 中选择一行时,我想打开另一个表(不是 DetailViewController)。它应该在 MasterViewController 之外使用,类似于 iPad 上的 Facebook 应用程序。

我有一个从 MasterViewController 到这个表的自定义 segue(UITableViewController 类型的 DocumentViewController)。此 DocumentViewController 被“嵌入”在导航控制器中。

简而言之,我的故事板上的项目如下所示:

导航控制器->MasterViewController->导航控制器->DocumentViewController。

转场是从 MasterViewController 到 navigationController。

我是否必须在“didSelectRowAtIndexPath”中执行转场?还是我必须在 didSelectRowAtIndexPath 中使用“performSegueWithIdentifier”?

4

1 回答 1

1

如果我正确理解你的问题,segue 应该是从 MasterViewController 到 DocumentViewController。确保给它一个唯一的标识符,然后在 MasterViewController的prepareForSegue中引用你想要做的事情。

例子:

- (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];
    }
}
于 2012-08-16T06:35:36.553 回答