iOS开之代理传值

第一界面的视图控制器名字ViewController


第二个界面的控制器叫NextInterfaceViewController



如上两个界面的视图所示 进行的界面间的传值的效果图  即是 点击 nextInerface button按钮 把第一个界面label上的内容 传到后一个界面上的textField上显示   从前一个界面向后一界面传值还可以使用属性传值  更为方便  这里只是为了介绍代理传值 不考虑传值的优越性.

下面是代理传值的具体方法步骤:

//在第一个视图控制器即是ViewController 的.h文件中定义代理与方法 具体代码如下

#import <UIKit/UIKit.h>

@protocol PassTrendValueDelegate


- (void)passTrendValues:(NSString *)values;//1.定义协议与方法 


@end


@interface ViewController :UIViewController

@property (nonatomic,retain) id <PassTrendValueDelegate>trendDelegate;//声明委托变量


@end

//在  nextInerface button按钮的点击事件中设置代理对象 此时是在在第一个视图控制器即是ViewController 的.m文件中 具体实现代码如下

- (void)handleToNextInterface {

    NextInterfaceViewController *nextInterface = [[NextInterfaceViewControlleralloc] init];

    self.trendDelegate = nextInterface;//设置代理对象

    [self.trendDelegatepassTrendValues:self.label.text];

    

    [self.navigationControllerpushViewController:nextInterface animated:YES];

}


//接着在第二个界面  即是在第一个视图控制器即是 NextInterfaceViewController.h文件中  服从协议  实现具体代码如下

@interface NextInterfaceViewController :UIViewController <PassTrendValueDelegate>//服从协议

//最后在第二个界面   即是在第一个视图控制器即是 NextInterfaceViewController.m文件中  实现的具体代码如下:

  

//实现代理中的方法

- (void)passTrendValues:(NSString *)values {

    //self.textField.text = values;

    NSLog(@"%@",values);

    self.view.backgroundColor = [UIColorgreenColor];

    self.textField = [[UITextFieldalloc] initWithFrame:CGRectMake(80,180, 180,30)];

    self.textField.borderStyle =UITextBorderStyleRoundedRect;

    [self.viewaddSubview:self.textField];


    self.textField.text = values;

}


按如上操作就能实现第一界面到第二个界面的传值  本没有介绍各个空间的创建  只是单纯的介绍了代理传值  如有不足只处欢迎指正!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值