协议传值

来源:互联网 发布:bi工程师和数据分析 编辑:程序博客网 时间:2024/05/17 19:58

#waring 第一步:创建协议

@protocol SecondViewControllerDelegate<NSObject>

 //传值的方法一般都带一个或者多个参数

-(void)passValue:(NSString *)string


@waring  第二步:创建一个代理人属性 用来执行协议

@property(nonatomic,assign)id<SecondViewControllerDelegate>delegate;

属性用assion的原因是:防止无限拥有


#waring 第三步:在合适的位置设定好代理  delegate的对象执行协议方法

  [self.delegate passValue:self.text.field.text];


#waring 第四步:遵循协议

@interface MainViewController ()<SecondViewControllerDelegate>


  SecondViewController *secondVC = [[SecondViewController alloc] init];
    
#warning 第五步:设置第二个页面的代理人
    
    secondVC.delegate = self;
 
    [self.navigationController pushViewController:secondVC animated:YES];
    [secondVC release];


#warning 第六步:实现相应的协议方法


- (void)passValue:(NSString *)string
{
    // 利用传过来的string参数 给自己的空间赋值
    
    UIButton *button = (UIButton *)[self.view viewWithTag:10000];
    self.title = string;
    [button setTitle:string forState:UIControlStateNormal];
}


0 0
原创粉丝点击