让第二个页面传值到第一个界面。首先现在第二个页面头文件里
的#import <UIKit/UIKit.h>
下与@end
之间写如下指令:
//协议
@protocol loveDelegate<NSObject>
//协议的方法
-(void)loveDelegate:(NSString *)str;
@end
@interface secondViewController : UIViewController
//实体变量,成员属性
//id是任意数据类型
@property(nonatomic,strong)id<loveDelegate>delegate;
然后把被传值文件的实现文件里引入第二页面(#import"传值的页面名.h")
然后在该页面中的interface这一行的括号后加上<loveDelegate>来调用这个方法。如下
@interface firstViewController ()<loveDelegate>
在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"];
}
网友评论