第一界面的视图控制器名字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];
}
@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;
}
按如上操作就能实现第一界面到第二个界面的传值 本没有介绍各个空间的创建 只是单纯的介绍了代理传值 如有不足只处欢迎指正!