RootViewController.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { //注冊通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recieveData:) name:BackNotification object:nil]; } return self; } - (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)recieveData:(NSNotification *)notification { UILabel *label = (UILabel *)[self.view viewWithTag:102]; NSString *text = [notification.userInfo objectForKey:@"text"]; label.text = text; } - (void)buttonAction { ModalViewController *modalCtrl = [[[ModalViewController alloc] init] autorelease]; modalCtrl.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentViewController:modalCtrl animated:YES completion:NULL]; }
ModalViewController.m
#define BackNotification @"BackNotification" @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]; NSString *text = field.text; NSDictionary *dic = @{@"text":text}; //发送通知 [[NSNotificationCenter defaultCenter] postNotificationName:BackNotification object:self userInfo:dic]; [self dismissViewControllerAnimated:YES completion:NULL]; }