#import <UIKit/UIKit.h> typedef void (^MyBlock)(NSString*); @interface SecondViewController : UIViewController @property (retain,nonatomic)UITextField* myTextField; @property(copy,nonatomic)MyBlock block; -(SecondViewController*)initWithBlock:(MyBlock)block; @end #import "SecondViewController.h" @interface SecondViewController () @end @implementation SecondViewController -(SecondViewController *)initWithBlock:(MyBlock)block { if (self=[super init]) { self.block=block; } return self; } - (void)viewDidLoad { [super viewDidLoad]; UIButton* btnTest=[UIButton buttonWithType:UIButtonTypeRoundedRect]; btnTest.frame=CGRectMake(120, 130, 80, 30) ; [btnTest setTitle:@"Test" forState:UIControlStateNormal]; [btnTest addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btnTest]; UITextField* textField=[[UITextField alloc]initWithFrame:CGRectMake(120, 80, 80, 30)]; textField.borderStyle=UITextBorderStyleRoundedRect; [self.view addSubview:textField]; self.myTextField=textField; } -(void)back{ if (self.block) { self.block(self.myTextField.text); } [self.navigationController popToRootViewControllerAnimated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end #import "ViewController.h" #import "SecondViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIBarButtonItem* btnName=[[UIBarButtonItem alloc]initWithTitle:@"Next" style:UIBarButtonItemStyleDone target:self action:@selector(next)]; self.navigationItem.rightBarButtonItem=btnName; // Do any additional setup after loading the view, typically from a nib. } -(void)next{ SecondViewController* secondVC=[[SecondViewController alloc]initWithBlock:^(NSString* str){ NSLog(@"%@",str); self.title=str; }]; [self.navigationController pushViewController:secondVC animated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end