2011-10-24 12 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で::のようにそれを却下する前に、デリゲートのごFilterViewControllerコール- (void)filterViewController:(FilterViewController *)controller didSelectFilters:(NSInteger)filters

-(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 
} 

関連する問題