#import <UIKit/UIKit.h>
#import "SecondViewController.h"
@interface FirstViewController : UIViewController
@property(strong,nonatomic) IBOutlet UILabel* label;
-(IBAction)btn:(id)sender;
@end
#import "FirstViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
@synthesize label = _label;
-(IBAction)btn:(id)sender
{
SecondViewController* second = [[SecondViewController alloc] init];
[second setCallback:^(NSString *_msg) {
_label.text = _msg;
}];
[self presentViewController:second animated:YES completion:nil];
}
- (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.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
#import <UIKit/UIKit.h>
@interface SecondViewController : UIViewController
@property(strong,nonatomic) IBOutlet UITextField* textField;
@property(strong,nonatomic) void (^callback) (NSString* _msg);
-(IBAction)back:(id)sender;
@end
#import"SecondViewController.h"
@interfaceSecondViewController ()
@end
@implementation SecondViewController
@synthesize textField =_textField;
@synthesize callback =_callback;
-(IBAction)back:(id)sender
{
if (_callback) {
_callback(_textField.text);
_callback = nil;
}
[selfdismissViewControllerAnimated:YEScompletion:nil];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNilbundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end