IOS设计模式一:代理模式

来源:互联网 发布:手机我的世界枪械js 编辑:程序博客网 时间:2024/05/01 02:54

代理模式实现方式如下:

#import <UIKit/UIKit.h>//声明协议,制定协议@protocol TRSubViewControllerDelegate<NSObject>//声明一个方法-(void)changeRootViewColor:(UIColor*)color;@end@interface TRSubViewController : UIViewController//设置一个可以外部访问的属性 -->委托方@property(nonatomic,weak)id<TRSubViewControllerDelegate>delegate;@end

#pragma mark - 修改A的颜色- (IBAction)changeRootViewBgcolor:(UIButton *)sender{    //B界面想修改A界面的颜色    [self.delegate changeRootViewColor:[UIColor purpleColor]];    }

#import "TRSubViewController.h"@interface TRRootViewController ()<TRSubViewControllerDelegate>@property(nonatomic,strong)TRSubViewController *svc;@end@implementation TRRootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];    if (self) {                self.svc=[[TRSubViewController alloc]initWithNibName:@"TRSubViewController" bundle:nil];        //设置B界面的委托人为A界面        self.svc.delegate=self;    }    return self;}#pragma mark - 实现协议中的方法-(void)changeRootViewColor:(UIColor *)color{    self.view.backgroundColor=color;}


0 0