如何通过来自同一UITableViewController的多个segues查看同一个View Controller

时间:2012-07-20 23:13:41

标签: objective-c delegates viewcontroller segue

我有一个静态的TableViewController,它有两个静态单元:一个出发机场和一个到达机场。两个segue到另一个TableViewController,允许用户选择机场并将原始TVC定义为将对象传回的委托。我不知道该怎么做才能确定选择机场时正在设置的财产;选择通过代表回传时的出发或到达机场。我开始实现的是AirportListTVC上的一个属性,它通过prepareForSegue方法设置,然后在做出选择时传回给委托。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

将信息传递给新的UIViewController通常很棘手 - 使用Interface Builder中的自动segue并不能让您轻松传递信息。基本上我会建议两种方式(听起来你正在使用一种方式):

1)使用Interface Builder segues并使用prepareForSegue将您拥有的任何信息传递给新的UIViewController。

2)在Interface Builder中命名UIViewController(标识符),然后使用instantiateViewControllerWithIdentifier自行呈现,如下所示 - 在这种情况下使用导航控制器来呈现:

UIStoryboard *storyboard = [viewController storyboard];
MyViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MyVC"];
[vc configureWithMyData:myData];
[navigationController pushViewController:vc animated:YES];

这是一个适合你的挑选案例。显然你也可以完全用代码创建控制器。

这里有一些事情要考虑 - 比如这两个方法导致新的UIViewController在不同的点实际初始化/ viewDidLoad(如果这有帮助,我可以扩展它。)