2

我有一个静态 TableViewController,它有两个静态单元格:一个出发机场和一个到达机场。两者都连接到另一个 TableViewController,它允许用户选择一个机场,并将原始 TVC 定义为传递对象的委托。我不知道如何确定选择机场时正在设置的属性;选择通过代表传回时的出发或到达机场。我已经开始实现的是 AirportListTVC 上的一个属性,它通过 prepareForSegue 方法设置,然后在进行选择时传递回委托。有没有更好的办法?

4

1 回答 1

1

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

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(如果有帮助,我可以对此进行扩展)。

于 2012-07-21T00:23:21.300 回答