如何在故事板中使用协议模式

时间:2014-06-10 06:29:50

标签: objective-c delegates protocols

我使用协议在两个视图控制器之间发送数据而不使用故事板。

ViewControllerB * viewB=[[ViewControllerA alloc] initWithNibName:@"ViewControllerB" bundle:nil];
viewB.delegate=self; 
[self.navigationController pushViewController:viewB animated:YES];

如何用故事板来表达这一点。

1 个答案:

答案 0 :(得分:1)

  

如何用故事板来表达这一点。

当您使用故事板时,不需要创建协议以在两个视图控制器之间进行通信。通常,您将使用故事板segue在视图控制器之间进行转换。当触发segue时,当前视图控制器将获得-prepareForSegue:sender:消息,该消息将segue作为其第一个参数。 segue引用了" source"和"目的地"查看控制器,这样你就可以获得对新视图控制器(目标)的引用,并在那时传递你喜欢的任何数据。

如果您仍然希望将当前视图控制器作为目标的委托并让他们使用您可以想到的任何协议,则可以在-prepareForSegue:sender:中设置新控制器的委托。其余的(创建协议,实现协议等)与您一直以来完全相同。