我有一个表格,其详细信息披露按钮显示MyDetailViewController
,而在performSegueWithIdentifier:sender:
我设置了一些变量。但事实证明,我需要更复杂的东西:我需要基于选择的行的MyDetailViewController
(MyFooController : MyDetailViewController
,MyBarController : MyDetailViewController
等子类型。
我的第一个想法是分配给destinationViewController
中UIStoryboardSegue
中的performSegueWithIdentifer:sender:
,但这是一个只读变量。
使用Storyboard有一种简单的方法吗?我应该创建自定义Segue吗?或者我应该以编程方式执行此操作?
答案 0 :(得分:0)
您可以使用多个segue,一个用于控制器的每个子类型,对于一个viewController可以使用的数量没有实际限制,或者您可以根据所选的单元格实例化视图控制器,并将其手动推入堆栈,其中包括以下内容:
MyBarController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"myBarController"]; // You set the identifiers in the storyboard itself
[self.navigationController pushViewController:vc animated:YES];
答案 1 :(得分:0)
您无法将多个segue连接到详细信息公开按钮,但您可以从控制器连接任意数量的segue。实现tableView:accessoryButtonTappedForRowWithIndexPath:,当用户点击按钮时将调用该方法。您可以使用indexPath参数来决定执行哪个segue,然后使用performSegueWithIdentifier调用segue。
答案 2 :(得分:0)
作为第三种选择,您可以在故事板中创建不同的原型单元格,为每个原型单元格提供不同的reuseIdentifier
,并从每个原型单元格创建不同的segue。然后在cellForRowAtIndexPath:
方法中,根据行将出列单元格选中正确的reuseIdentifier
。