您的位置:首页 > 移动开发 > IOS开发

iOS 下实现代理设计模式

2013-09-26 08:53 459 查看
我们实现一个简单的代理设计模式,在一个试图控制器中点击按钮去对另一个试图控制器的控件进行操作。

本文代码例子:http://pan.baidu.com/s/1f1CkK

看代码吧

CustomViewViewController.h 要自己在XIB上拖一个Button啊

//
//  CustomViewViewController.h
//  CustomDelegate
//
//  Created by 杜甲 on 13-9-26.
//  Copyright (c) 2013年 杜甲. All rights reserved.
//

#import <UIKit/UIKit.h>

@protocol ChangeTextViewDelegate <NSObject>
-(void)textEntered:(NSString*)text;

@end

@interface CustomViewViewController : UIViewController

@property (assign,nonatomic) id<ChangeTextViewDelegate>delegate;
-(IBAction)exchangeData;

@end


CustomViewViewController.m

//
//  CustomViewViewController.m
//  CustomDelegate
//
//  Created by 杜甲 on 13-9-26.
//  Copyright (c) 2013年 杜甲. All rights reserved.
//

#import "CustomViewViewController.h"

@interface CustomViewViewController ()

@end

@implementation CustomViewViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}
-(IBAction)exchangeData
{
    [_delegate textEntered:@"ffff"];
    
    [self dismissViewControllerAnimated:YES completion:^{}];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


ViewController.h

//
//  ViewController.h
//  CustomDelegate
//
//  Created by 杜甲 on 13-9-26.
//  Copyright (c) 2013年 杜甲. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "CustomViewViewController.h"
@interface ViewController : UIViewController<ChangeTextViewDelegate>
@property (retain, nonatomic) IBOutlet UILabel *myTest;
@property (retain, nonatomic) CustomViewViewController* CTVC ;

-(IBAction)changeText:(id)sender;
@end


ViewController.m

//
//  ViewController.m
//  CustomDelegate
//
//  Created by 杜甲 on 13-9-26.
//  Copyright (c) 2013年 杜甲. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    self.CTVC = [[CustomViewViewController alloc] init];
    self.CTVC.delegate = self;
    
}

-(IBAction)changeText:(id)sender
{
    [self presentViewController:self.CTVC animated:YES completion:^{
    }];
    
}

-(void)textEntered:(NSString *)text
{
    self.myTest.text = text;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    [_myTest release];
    [super dealloc];
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: