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