RootViewController.m
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor greenColor]; //创建显示文字的label UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)]; label.tag = 102; label.backgroundColor = [UIColor grayColor]; [self.view addSubview:label]; [label release]; //添加按钮 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 20, 90, 60); [button setTitle:@"打开模态" forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } - (void)viewWillAppear:(BOOL)animated { UILabel *label = (UILabel *)[self.view viewWithTag:102]; //创建单例对象 BackData *backData = [BackData shareData]; label.text = backData.text; [super viewWillAppear:animated]; } - (void)buttonAction { ModalViewController *modalCtrl = [[[ModalViewController alloc] init] autorelease]; modalCtrl.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentViewController:modalCtrl animated:YES completion:NULL]; }ModalViewController.m
#import "BackData.h" @interface ModalViewController () @end @implementation ModalViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor redColor]; //添加按钮 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 20, 90, 60); [button setTitle:@"关闭模态" forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; //创建输入框 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 200, 40)]; textField.tag = 101; textField.borderStyle = UITextBorderStyleRoundedRect; [self.view addSubview:textField]; [textField release]; } - (void)buttonAction { UITextField *field = (UITextField *)[self.view viewWithTag:101]; //创建单例对象 BackData *data = [BackData shareData]; data.text = field.text; [self dismissViewControllerAnimated:YES completion:NULL]; }
@interface BackData : NSObject @property (nonatomic, copy) NSString *text; + (BackData *)shareData;
static BackData *data = nil; @implementation BackData + (BackData *)shareData { if (data == nil) { data = [[BackData alloc] init]; } return data; }
单例---视图间数据的传递:标签显示输入的内容【多个视图中】
原文地址:http://blog.csdn.net/pengyuan_d/article/details/40584989