多个ViewController之间传值
来源:互联网 发布:python 自动化 工业 编辑:程序博客网 时间:2024/06/01 08:03
多个ViewController进行传值,有三种方式:
1:使用代理
2: 使用Block
3:使用单例
- (void)viewDidLoad
{
[superviewDidLoad];
self.navigationItem.title=@"title1";
self.navigationItem.rightBarButtonItem=[[UIBarButtonItemalloc] initWithTitle:@"next"style:UIBarButtonItemStylePlaintarget:selfaction:@selector(next)];
}
-(void)next
{
AZSecondViewController *secondVC=[[AZSecondViewControlleralloc] init];
secondVC.title=@"title2";
//第一种:使用代理 ,在secondVC中见代码
secondVC.delegate=self;
//第二种:使用BLOCK
//定义secondVC中blockFun
secondVC.blockFun=^(NSString *title)
{
self.navigationItem.title=title;
};
//第三种:使用单例 -(void)viewWillAppear:(BOOL)animated
[self.navigationControllerpushViewController:secondVC animated:YES];
}
//第三种:使用单例
-(void)viewWillAppear:(BOOL)animated
{
AZSingleton *sington=[AZSingletonshareSingleton];
if (sington.str==nil) {
return;
}
self.navigationItem.title=sington.str;
}
//实现协议中的方法
-(void)getVaule:(NSString *)title
{
self.navigationItem.title=title;
}
UISecondViewController:
//创建三个按键
UIButton *btn1=[UIButtonbuttonWithType:UIButtonTypeCustom];
btn1.frame=CGRectMake(10,60, 300, 20);
[btn1 setTitle:@"使用代理" forState:UIControlStateNormal];
btn1.tag=10;
[btn1 addTarget:selfaction:@selector(btnClick:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn1];
UIButton *btn2=[UIButtonbuttonWithType:UIButtonTypeCustom];
btn2.frame=CGRectMake(10,90, 300, 20);
btn2.tag=11;
[btn2 setTitle:@"使用block"forState:UIControlStateNormal];
[btn2 addTarget:selfaction:@selector(btnClick:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn2];
UIButton *btn3=[UIButtonbuttonWithType:UIButtonTypeCustom];
btn3.frame=CGRectMake(10,120, 300, 20);
btn3.tag=12;
[btn3 setTitle:@"使用单例" forState:UIControlStateNormal];
[btn3 addTarget:selfaction:@selector(btnClick:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn3];
}
-(void)btnClick:(UIButton *)btn
{
if (btn.tag==10) {
[self.delegategetVaule:@"使用代理"];
}
if (btn.tag==11) {
self.blockFun(@"使用block");//定义了一个快函数,这里只是调用一下块函数,实现在rootVC中。
}
if (btn.tag==12) {
AZSingleton *singleton=[AZSingletonshareSingleton];
singleton.str=@"使用单例";
}
}
效果:
- 多个ViewController之间传值
- ViewController之间传值
- 【ios】2个viewController之间传值(segue方式)
- 关于多个ViewController之间进行数据传递的方法
- iOS两个viewController之间传值
- IOS 两个ViewController 之间传值
- Objective-C ViewController之间传值的方法
- iOS 属性传值 Block传值 两个ViewController之间的
- UIStoryBoard中viewController之间的跳转与传值
- iOS ViewController之间传值方法一(利用临时变量)
- iOS ViewController之间传值方法二(利用NSUserDefaults)
- iOS ViewController之间传值方法三(利用NSNotification)
- iOS ViewController之间传值方法四(利用Delegate)
- iOS ViewController之间传值方法五(使用block)
- 使用协议Protocol实现ViewController之间传值
- StoryBoard中使用Segue实现ViewController之间传值
- IOS学习之——ViewController之间正向传值
- iOS 不同界面(ViewController)之间传值
- Linux - Git的使用方法
- 二叉搜索树(二叉排序数)的基本操作实现
- 信息安全基础知识(四)KDC、公用密钥加密和证书:
- LeetCode[String]: Add Binary
- hdu2159——FATE
- 多个ViewController之间传值
- mongodb 文档的嵌入和引用
- android 四大组件之activity
- struts2中的类型转换,从web页面传来的离散的值在后台封装成一个user对象
- c++ 35虚函数与多态(二)
- 安卓遇见最奇葩的错
- Android SDK开发包国内下载地址
- C语言中define的用法
- UIWebView内容搜索并且显示高亮背景颜色