2011-10-24 33 views
1

我的應用程序是tabbar(+導航)應用程序。在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委託解僱之前。

相關問題