ios代理的使用,正向传值,逆向传值
2015-08-06 22:00
387 查看
#import <UIKit/UIKit.h> #import "SubViewController.h" @interface ViewController : UIViewController<SubViewControllerDelegate> @end
#import "ViewController.h" @interface ViewController () { SubViewController *_subViewController; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _subViewController = [[SubViewController alloc]init]; self.view.backgroundColor = [UIColor orangeColor]; _subViewController.delegate = self; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(10, 30,200 , 30); [btn setTitle:@"跳转到SubViewController" forState:UIControlStateNormal]; [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeSystem]; btn1.frame = CGRectMake(10, 100, 200, 30); [btn1 setTitle:@"让SubViewController 变色" forState:UIControlStateNormal]; [btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [btn1 addTarget:self action:@selector(btn1Click) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn1]; // Do any additional setup after loading the view, typically from a nib. } -(void)btn1Click { _subViewController.view.backgroundColor = [UIColor redColor]; } -(void)btnClick { [self presentViewController:_subViewController animated:YES completion:^{ }]; } -(void)changeColoer { self.view.backgroundColor = [UIColor purpleColor]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
#import <UIKit/UIKit.h> @protocol SubViewControllerDelegate <NSObject> -(void)changeColoer; @end @interface SubViewController : UIViewController @property(nonatomic,weak)__weak id<SubViewControllerDelegate>delegate; @end
#import <UIKit/UIKit.h> @protocol SubViewControllerDelegate <NSObject> -(void)changeColoer; @end @interface SubViewController : UIViewController @property(nonatomic,weak)__weak id<SubViewControllerDelegate>delegate; @end
这个小demo中我建立了两个视图控制器,一个是ViewController另一个是SubViewController
两个页面可以进行相互跳转
点击SubViewController 中的变色按钮可以将ViewController中的颜色改变
点击ViewController中的变色按钮也可以将SubView中的颜色改变
代理实质就是指针的传递
相关文章推荐
- iOS设计模式之命令模式
- iOS 透明视图控制器
- iOS 使用category将复杂的类拆分
- iOS 9之分屏多任务(Split View)
- iOS设计模式 - 单例
- ios越狱开发随感
- IOS性能优化
- iOS Core Animation详解(四)AutoLayout中的动画
- ios7 textViewDidChange代理/通知中修改TextView内容崩溃的原因
- ios 设计 切图
- ios给图片加水印
- xcode6插件地址(某些插件不能用解决办法)
- iOS开发-Day19-OC NSDictionary&NSMutableDictionary&NSSet&NSMutableSet
- iOS 第四课 倒计时 设置文本框的删除键
- iOS让程序延迟执行
- iOS 第三课 podfile文件 makeToast第三方错误提示 正则NSPredicate
- iOS程序启动的时候隐藏状态栏,启动完成之后显示状态栏
- iOS 设置导航栏的主题
- (L1) AudioService A2DP
- iOS - 判断当前系统版本号