Как передать данные из модального ViewController в родительский ViewController? - PullRequest
1 голос
/ 24 октября 2011

Мое приложение - приложение с вкладками (+ навигация).В FirstViewController я вызываю onModalView.

-(void) onFilter
{
  FilterViewController* controller =[[[FilterViewController alloc] initWithNibName:@"Filter" bundle:[NSBundle mainBundle]] autorelease];
  [self.navigationController presentModalViewController:controller animated:YES];
}

Есть много фильтров, которые пользователь может выбрать в FilterViewController.Я хочу передать предпочтения пользователей в FirstViewController.Как я могу это сделать ?

1 Ответ

2 голосов
/ 24 октября 2011

Я обычно использую шаблон делегата. Как:

@class FilterViewController;

@protocol FilterViewControllerDelegate
@required
- (void)filterViewController:(FilterViewController *)controller didSelectFilters:(NSInteger)filters;
@end

@interface FilterViewController : UIViewController {
    id<FilterViewControllerDelegate> _delegate;
}
@property (nonatomic, assign) id<FilterViewControllerDelegate> delegate;
@end

и в вашем FirstViewController:

-(void) onFilter
{
  FilterViewController* controller =[[[FilterViewController alloc] initWithNibName:@"Filter" bundle:[NSBundle mainBundle]] autorelease];
  controller.delegate = self;
  [self.navigationController presentModalViewController:controller animated:YES];
}

- (void)filterViewController:(FilterViewController *)controller didSelectFilters:(NSInteger)filters {
// Do something
}

В вашем FilterViewController вызовите - (void)filterViewController:(FilterViewController *)controller didSelectFilters:(NSInteger)filters делегата, прежде чем отклонить его.

...