故事板中的自定义转场
Posted
技术标签:
【中文标题】故事板中的自定义转场【英文标题】:Custom segue in storyboard 【发布时间】:2012-08-16 06:25:18 【问题描述】:我有一个主从应用程序。当用户在 MasterTable 中选择一行时,我想打开另一个表(不是 DetailViewController)。除了 MasterViewController 之外,它应该是纸质的,类似于 iPad 上的 Facebook 应用程序。
我有一个从 MasterViewController 到这个表的自定义 segue(UITableViewController 类型的 DocumentViewController)。此 DocumentViewController 被“嵌入”在导航控制器中。
简而言之,我的故事板上的项目如下所示:
navigationController->MasterViewController->navigationController->DocumentViewController.
segue 是从 MasterViewController 到 navigationController。
我必须在“didSelectRowAtIndexPath”中执行转场吗?还是我必须在 didSelectRowAtIndexPath 中使用“performSegueWithIdentifier”?
【问题讨论】:
【参考方案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];
【讨论】:
这将帮助我将数据发送到 DocumentViewController。但是我怎样才能“动画”segue,以便 MasterVC 向左移动,而 DocumentVC 位于 MasterVC 旁边? @NetToios,这可能是一个很好的起点:***.com/questions/9348605/…。另外,如果这有帮助,请接受答案。 示例使用 UIViewController,我可以使用 UITableViewController,因为 MasterViewController 和 DocumentViewController 是什么?而且...我已经接受了答案:) 我已经实现了 "prepareforsegue" 和 "perform" 方法。但是当我运行应用程序时,当我在 MasterVC 中选择一行时,没有一个断点被命中。知道这是为什么吗? 必须在情节提要中将 segue 从单元“链接”到控制器。至于使用 UITableViewController... 是的,绝对是因为它们是 UIViewController 的子类,并且因为多态性。以上是关于故事板中的自定义转场的主要内容,如果未能解决你的问题,请参考以下文章