正如标题所暗示的那样,我问是否可以将单个代表链接到我项目中的两个不同的UIViewControllers。我试图在我的项目中链接到两个不同的VC,但它让第一个VC的行为很奇怪,所以我想知道我做错了吗? 很抱歉,如果这是一个菜鸟问题,还是新手。
答案 0 :(得分:1)
这根本没有错。
委托协议只是一种协议。对象可以同时符合多个协议(例如UITableViewDelegate
和UITableViewDatasource
)。
您可能有两个视图控制器,例如MyPersonViewController
和MyAnimalViewController
,它们将具有MyPersonViewControllerDelegate
和MyAnimalViewControllerDelegate
等委托协议。
然后你就可以......
self.personViewController.delegate = self;
self.animalViewController.delegate = self;
唯一需要确保的是,当您从每个VC获得回调时,您不会混淆它们。执行此操作的最佳方法是使用与UITableViewDatasource
相同的模式,并为方法添加前缀,如...
- (void)personViewController:(MyPersonViewController *)controller gotSomeResults:(NSArray *)results
或者其他什么。无论如何,每个控制器都有一组完全不同的委托方法。