我在弹出窗口中有一个UITableView.当用户在弹出窗口中选择一行时,我希望它关闭弹出窗口并将单元格中的一些数据保存到父视图控制器中的变量.最有效的方法是什么? 在popover的表视图控
在popover的表视图控制器的.h中
@protocol PopoverTableViewControllerDelegate <NSObject> - (void)didSelectRow:(NSString *)cellDataString; @end @interface PopoverTableViewController : UITableViewController @property (strong, nonatomic) id<PopoverTableViewControllerDelegate> delegate; @end
在.m的didSelectRowAtIndexPath中调用委托并将单元格数据变量传递为
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self.delegate didSelectRow:cellDataString]; } - (void)dealloc { [super dealloc]; [_delegate release]; }
在.h中的父视图控制器中实现它实现PopoverTableViewControllerDelegate as
@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]; }