IOS代理模式delegate的相关代码

来源:互联网 发布:西安交通大学网络缴费 编辑:程序博客网 时间:2024/06/06 21:41
<pre name="code" class="objc">////  MeViewController.h//  Demo8_Delegate委托//#import <UIKit/UIKit.h>//这里只是说明MeViewController是一个类型,在后面可以创建属性@class MeViewController;//1.制定规则   协议名称通常是类名加Delegate@protocol MeDelegate <NSObject>-(void)driving:(MeViewController*)meVc address:(NSString*)address;@end@interface MeViewController : UIViewController//2.委托方法需要有delegate属性@property(nonatomic,weak)id<MeDelegate> delegate;@property(nonatomic,strong)NSString *name;@end


////  MeViewController.m//  Demo8_Delegate委托////  Created by tarena on 16/4/12.//  Copyright © 2016年 tarena. All rights reserved.//#import "MeViewController.h"@interface MeViewController ()@end@implementation MeViewController/*声明熟悉@property(nonatomic,strong)NSString *name; 做了三件事 1. NSString *_name; 2. -(void)setName:(NSString*)name {      _name = name;    } 3. -(NSString *)name{      return _name;    }*///重新定义getter方法-(NSString *)name{    return @"张三";}- (IBAction)back:(id)sender {    //在此时此刻需要代理人 帮我做事    //3.在适当的时候,找代理人帮我做事    [self.delegate driving:self address:@"上海"];            //回到前一个界面    [self dismissViewControllerAnimated:YES completion:nil];}- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view from its nib.}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {    // Get the new view controller using [segue destinationViewController].    // Pass the selected object to the new view controller.}*/@end
<pre name="code" class="objc">#import <UIKit/UIKit.h>@interface DriverViewController : UIViewController@end


<pre name="code" class="objc">////  DriverViewController.m//  Demo8_Delegate委托////  Created by tarena on 16/4/12.//  Copyright © 2016年 tarena. All rights reserved.//#import "DriverViewController.h"#import "MeViewController.h"//1.遵守协议@interface DriverViewController () <MeDelegate>@property (weak, nonatomic) IBOutlet UILabel *label;@end@implementation DriverViewController//2.实现协议中的方法-(void)driving:(MeViewController *)meVc address:(NSString *)address {    self.label.text = [NSString stringWithFormat:@"开车送%@回%@",meVc.name,address];    NSLog(@"开车送%@回%@",meVc.name,address);        }- (IBAction)goNextVC:(id)sender {    MeViewController *mc = [[MeViewController alloc]init];    //3.设置委托方代理人为(自己)    mc.delegate = self;    //界面间的跳转 跳转到 MeViewController 界面    [self presentViewController:mc animated:YES completion:nil];}- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view from its nib.}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {    // Get the new view controller using [segue destinationViewController].    // Pass the selected object to the new view controller.}*/@end



0 0
原创粉丝点击