ios-委托代理详细步骤,手把手教,学不会你砍我!

让第二个页面传值到第一个界面。首先现在第二个页面头文件里
#import 下与@end之间写如下指令:

//协议
@protocol loveDelegate
//协议的方法
-(void)loveDelegate:(NSString *)str;
@end
@interface secondViewController : UIViewController
//实体变量,成员属性
//id是任意数据类型
@property(nonatomic,strong)iddelegate;

然后把被传值文件的实现文件里引入第二页面(#import"传值的页面名.h")
然后在该页面中的interface这一行的括号后加上来调用这个方法。如下
@interface firstViewController ()
在viewdidload里实例化一个button。button的属性请看以下例子中的注释

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
//实例化一个button,它的结构大小是122,300,100,42
    UIButton * btn=[[UIButton alloc]initWithFrame:CGRectMake(122,300,100,42)];
//设置这个button的标题是"进入",样式为一般
    [btn setTitle:@"进入" forState:UIControlStateNormal];
//设置标题字体的颜色为白色,样式为一般
    [btn setTitleColor:[UIColor whiteColor ]forState:UIControlStateNormal];
//设置button的背景颜色为橙色
    btn.backgroundColor=[UIColor orangeColor];
//为这个button添加点击目标为自己,然后点击所执行的命令(也叫点击事件)为"(clickPop)"(还需要对该点击事件所执行的方法进行编写)。
    [btn addTarget:self action:@selector(clickPop) forControlEvents:UIControlEventTouchUpInside];
    把这个button加到自身的view上
    [self.view addSubview:btn];
}

对点击事件的方法进行编写

-(void)clickPop{
实例化secondviewcontroller为vc
    secondViewController *vc= [[secondViewController alloc]init];
//vc使用delegate方法为本身
    vc.delegate = self;
//跳转到vc页面
    [self.navigationController pushViewController:vc animated:YES];
    
}

然后调用loveDelegate里的方法

-(void)loveDelegate:(NSString *)str{
    NSLog(@"love" );
}

最后在第二个页面的实现文件里写入

-(void)viewWillDisappear:(BOOL)animated
   {
     [  self.delegate loveDelegate:@"dragon"];
       
   }

你可能感兴趣的:(ios-委托代理详细步骤,手把手教,学不会你砍我!)