IOS 전송 방법 - 속성 역방향 전송(delegate)

7065 단어
위임delegate 역방향 전송을 이용하여 B인터페이스의 값을 A인터페이스로 전송합니다.클래스 B에서 delegate 및 전송 방법을 정의합니다.
1. A 인터페이스의 코드

#import "AViewController.h"
#import "BViewController.h"

@interface AViewController ()

@property (retain, nonatomic) UILabel *label;


@end

@implementation AViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    self.title = @"delegate    ";


    _label = [[UILabel alloc] initWithFrame:CGRectMake(10, 74, SCREEN_WIDTH-10, 30)];
    _label.text = @"    ";
    [self.view addSubview:_label];

    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(50, 120, SCREEN_WIDTH-100, 30)];
    [btn setTitle:@"  " forState:UIControlStateNormal];
    btn.backgroundColor = [UIColor orangeColor];
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];


   }

- (void)flashString:(NSString *)string {

    NSString *str = [NSString stringWithFormat:@"%@%@",@"     :",string];
    _label.text = str; }

-(void)btnClick:(id)sender {
    BViewController *bVC = [[BViewController alloc] init];
    bVC.delegate = self;
    [self.navigationController pushViewController:bVC animated:YES]; }

2. B 인터페이스의 코드
#import <UIKit/UIKit.h>

@interface BViewController : UIViewController

@property id delegate;

- (void)flashString:(NSString *)string;



@end
#import "BViewController.h"

@interface BViewController ()

@property (retain, nonatomic) UITextField *textFeild;

@end

@implementation BViewController


//@synthesize textField

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];

    _textFeild = [[UITextField alloc] initWithFrame:CGRectMake(20, 74, self.view.frame.size.width-40, 40)];
    _textFeild.borderStyle = UITextBorderStyleRoundedRect;
    _textFeild.placeholder = @"      ";
    [self.view addSubview:_textFeild];


    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(50, 200, self.view.frame.size.width-100, 30)];
    btn.backgroundColor = [UIColor grayColor];
    [btn setTitle:@"  " forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];


}

- (void)flashString:(NSString *)string {

}

- (void)btnClick:(id)sender {

    [self.delegate flashString:_textFeild.text];
    [self.navigationController popViewControllerAnimated:YES];

}

3. 효과도

좋은 웹페이지 즐겨찾기