国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS設計模式之代理模式

2019-11-14 18:34:30
字體:
來源:轉載
供稿:網友

代理模式

基本理解

  • 代理模式(PRoxy),為其他對象提供一種代理以控制對這個對象的訪問。

代理模式的應用

  • 遠程代理:就是為一個對象在不同的地址空間提供據不代表。這樣可以隱藏一個對象存在于不同地址空間的事實。
  • 虛擬代理:是根據需要創建開銷很大的對象,通過它來存放實例化需要很長時間的真實對象。
  • 安全代理:用來控制真實對象訪問時的權限。
    *智能指引:是指當調用真實的對象時,代理處理另外一些事。

例子

ChildViewCongroller.h

////  ChildViewController.h//  DelegateDemo////  Created by zhanggui on 15/8/6.//  Copyright (c) 2015年 zhanggui. All rights reserved.//#import <UIKit/UIKit.h>@protocol ChildDelegate <NSObject>-(void)changeColor:(UIColor *)color;@end@interface ChildViewController : UIViewController{}@property(assign,nonatomic)id <ChildDelegate>ChildDelegate;@end

ChildVIewController.m

////  ChildViewController.m//  DelegateDemo////  Created by zhanggui on 15/8/6.//  Copyright (c) 2015年 zhanggui. All rights reserved.//#import "ChildViewController.h"@interface ChildViewController ()@end@implementation ChildViewController- (void)viewDidLoad {    [super viewDidLoad];    self.view.backgroundColor = [UIColor whiteColor];    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 100, 200, 50)];    [button addTarget:self action:@selector(show) forControlEvents:UIControlEventTouchUpInside];//    button.backgroundColor = [UIColor redColor];    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];    [button setTitle:@"返回調用代理" forState:UIControlStateNormal];    [self.view addSubview:button];}-(void)show {    [_ChildDelegate changeColor:[UIColor redColor]];    [self.navigationController popToRootViewControllerAnimated:YES];}@end

在一個ViewController中去push出來ChildViewController。點擊ChildViewController中的按鈕改變根視圖的背景色
ViewController.h

////  ViewController.h//  DelegateDemo////  Created by zhanggui on 15/8/6.//  Copyright (c) 2015年 zhanggui. All rights reserved.//#import <UIKit/UIKit.h>#import "ChildViewController.h"@interface ViewController : UIViewController<ChildDelegate>- (IBAction)showChild:(id)sender;@end

ViewController.m

////  ViewController.m//  DelegateDemo////  Created by zhanggui on 15/8/6.//  Copyright (c) 2015年 zhanggui. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];   }#pragma mark - ChildViewDelegate Mehtod-(void)changeColor:(UIColor *)color {    self.view.backgroundColor =color;    NSLog(@"change color.....");}- (IBAction)showChild:(id)sender {    ChildViewController *child = [ChildViewController new];    child.ChildDelegate = self;    [self.navigationController pushViewController:child animated:YES];}@end

這樣通過代理就可以去實現。

附:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 化德县| 白朗县| 奇台县| 安徽省| 惠东县| 苍梧县| 瓮安县| 宜黄县| 谢通门县| 抚远县| 常德市| 林周县| 林甸县| 上饶县| 如东县| 嘉祥县| 五家渠市| 田林县| 大田县| 新竹县| 依安县| 普兰店市| 徐水县| 石阡县| 内乡县| 深州市| 凭祥市| 甘肃省| 婺源县| 吉木乃县| 黔南| 赣榆县| 辽阳县| 宣汉县| 香格里拉县| 伊春市| 互助| 上虞市| 伽师县| 华容县| 吐鲁番市|