我们实现一个简单的代理设计模式,在一个试图控制器中点击按钮去对另一个试图控制器的控件进行操作。
本文代码例子: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
// 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