использовать делегирования. составить протокол.
@protocol SelectValueDelegate <NSObject>
@optional
- (void) selectedValue:(NSString * )values selectionViewController:(UIViewController *)controller;
- (void)selectionCanceled:(UIViewController *)controller;
@end
внедрите его в свой MainViewController.h
@interface MainViewController : UIViewController<SelectValueDelegate> {
//....
}
Файл
и .m
выглядит следующим образом:
- (void) selectedValue:(NSString * )values selectionViewController:(UIViewController *)controller
{
//here you have value.
[controller dissmissModalViewControllerAnimated:YES];
}
- (void)selectionCanceled:(UIViewController *)controller
{
[controller dissmissModalViewControllerAnimated:YES];
}
и в вас ModalViewController
сделать свойство делегата следующим образом:
@interface ModalViewController : UIViewController
id<SelectValueDelegate> delegate;
}
@property(assign)id delegate; // synthesize it also
теперь по нажатию кнопки сделайте что-то вроде этого:
-(IBAction)buttonClicked:(id)sender
{
[delegate selectedValue:@"Value" selectionViewController:self];
}
и при модальном представлении внутри MainViewController
сделать что-то вроде этого:
ModalViewController *screen = [[ModalViewController alloc] initWithBlahblah];
screen.delegate = self;
[self.navigationController presentModalViewControllerAnimated:YES];