代理协议消息单方传递机制

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

单方消息传递通常用于子视图向主视图传递数据,步骤如下;

1.在子视图中

1.1 定义协议及协议中规定的方法,协议名通常是子视图控制器名+Delegate:

@PRotocolGameViewControllerDelegate <NSObject>

- (void)gameOverDeliverTimer:(NSString *)timer;@end

1.2 定义代理:

@property (weak, nonatomic)id<GameViewControllerDelegate>delegate;

1.3 子视图中在需要的地方,通过定义的代理调用协议方法,在父视图中没有设置代理的话该方法是不起作用的:

[_delegate gameOverDeliverTimer:_timerLabel.text]

2.在父视图中

2.1 父视图头文件需遵循子视图的协议才有资格申请成为代理:<GameViewControllerDelegate>

2.2 推出子视图控制器前,将自己设置成为子视图的代理,通常是在prepareSegue中实现:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

GameViewController*controller =[segue destinationViewController];

controller.delegate=self;

}

2.3 实现协议中的方法:

- (void)gameOverDeliverTimer:(NSString *)timer{

NSLog(@"最佳成绩:%@秒", timer);

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航