可以考慮通過引用文本字段,或通過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