2011-10-24 2 views
1

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

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

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

ответ

2

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

@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 на делегата перед отвергая его.

Смежные вопросы