2013-03-11 61 views
3

我在彈出窗口中有一個UITableView。當用戶在彈出窗口中選擇一行時,我想讓它關閉彈出窗口並將單元格中的一些數據保存到父視圖控制器中的一個變量中。什麼是最有效的方法來做到這一點?從選定的行傳遞數據到視圖控制器

回答

3

在酥料餅的表創建一個委託視圖控制器和變量傳遞給它作爲單元數據 在.H的酥料餅的表視圖控制器

@protocol PopoverTableViewControllerDelegate <NSObject> 

- (void)didSelectRow:(NSString *)cellDataString; 

@end 

@interface PopoverTableViewController : UITableViewController 

@property (strong, nonatomic) id<PopoverTableViewControllerDelegate> delegate; 

@end 

的在.M的didSelectRowAtIndexPath方法調用delega TE和傳遞單元數據變量作爲

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self.delegate didSelectRow:cellDataString]; 
} 

- (void)dealloc 
{ 
    [super dealloc]; 
    [_delegate release]; 
} 

在父視圖控制器中.H實現它實現作爲PopoverTableViewControllerDelegate

@interface ParentViewController : UIViewController <PopoverTableViewControllerDelegate> 

@property (strong, nonatomic) NSString *cellDataString; 

@end 

和在.M實施委託作爲

- (void)dealloc 
{ 
    [super dealloc]; 
    [_cellDataString release]; 
} 

PopoverTableViewController *popoverTableViewController = [[[PopoverTableViewController alloc] init] autorelease]; 
popoverTableViewController.delegate = self; 

- (void)didSelectRow:(NSString *)cellDataString 
{ 
    self.cellDataString = cellDataString; 
    [popOverController dismissPopoverAnimated:YES]; 
} 
+0

感謝這很好 – bardockyo 2013-03-11 17:36:47

0
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    ParentViewController *parent = [[ParentViewController alloc] initWithNibName:@"ParentViewController" bundle:nil]; 
parent.variable = //do something you want 

[self.navigationcontroller pushViewController:parent animated:YES]; 


} 

這樣的事情...希望這有助於...

相關問題