一位代表,两位UIViewCotrollers好吗?

时间:2014-09-11 15:14:14

标签: ios uiviewcontroller delegates

正如标题所暗示的那样,我问是否可以将单个代表链接到我项目中的两个不同的UIViewControllers。我试图在我的项目中链接到两个不同的VC,但它让第一个VC的行为很奇怪,所以我想知道我做错了吗? 很抱歉,如果这是一个菜鸟问题,还是新手。

1 个答案:

答案 0 :(得分:1)

这根本没有错。

委托协议只是一种协议。对象可以同时符合多个协议(例如UITableViewDelegateUITableViewDatasource)。

您可能有两个视图控制器,例如MyPersonViewControllerMyAnimalViewController,它们将具有MyPersonViewControllerDelegateMyAnimalViewControllerDelegate等委托协议。

然后你就可以......

self.personViewController.delegate = self;
self.animalViewController.delegate = self;

唯一需要确保的是,当您从每个VC获得回调时,您不会混淆它们。执行此操作的最佳方法是使用与UITableViewDatasource相同的模式,并为方法添加前缀,如...

- (void)personViewController:(MyPersonViewController *)controller gotSomeResults:(NSArray *)results

或者其他什么。无论如何,每个控制器都有一组完全不同的委托方法。