可以考虑通过引用文本字段,或通过TableViewController的定制init方法一个可变的字符串。
如果您选择传递文本字段,则可以在用户选择行并关闭弹出视图时直接分配值。如果你传递一个可变字符串,你可以设置它的值,稍后在popover的委托方法中设置文本字段的值。
让我知道你是否需要一些代码去使用它。
编辑
@interface DataViewController : UITableViewController {
UIPopoverController *popOverController;
UILabel *labelToUpdate;
}
@property (nonatomic, assign) UIPopoverController *popOverController;
@property (nonatomic, retain) UILabel *labelToUpdate;
@end
您将需要存储一个弱参考UIPopOverController如果您需要以编程方式关闭它。 labelToUpdate
是我们要更新的标签。
@implementation DataViewController
@synthesize popOverController;
@synthesize labelToUpdate;
- (void)dealloc
{
[labelToUpdate release];
[super dealloc];
}
....
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
self.labelToUpdate.text = event.title;
[self.popOverController dismissPopoverAnimated:YES];
}
@end
在UIPopOverController代表,这将是父视图控制器,做到这一点 -
// method trigged by button press
- (IBAction)showChoice {
DataViewController *viewController = [[DataViewController alloc] initWithNibName:nil bundle:nil];
UIPopoverController *popOverController = [[UIPopoverController alloc] initWithContentViewController:viewController];
popOverController.delegate = self;
viewController.labelToUpdate = self.outputLabel;
viewController.popOverController = popOverController;
[popOverController presentPopoverFromRect:self.button.frame
inView:self.window // Since I did this of the application delegate
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
[popoverController release];
}
如何驳回didSelectRowAtIndexPath方法方法中的酥料饼?代码将会非常有用。所选行包含来自核心数据的数据,调用数据event.title – Eric 2011-05-18 17:35:21
我已更新我的答案。 – 2011-05-18 18:15:38
popOverController.delegate = self给我一个错误,说它是相互冲突的类型,你认为这意味着什么? – Eric 2011-05-18 18:46:01