我似乎无法在主视图控制器和显示在弹出视图(iPad)内的表视图控制器之间进行任何类型的通信。
我以通常的方式在导航控制器中设置表格视图:
// create popover
if (self.popoverController == nil) {
filesViewController = [[[MyTableViewController alloc] initWithFiles:fileList] autorelease];
UINavigationController *navCtrl = [[[UINavigationController alloc] initWithRootViewController:filesViewController] autorelease];
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:navCtrl];
self.popoverController.delegate = self;
// resize popover
self.popoverController.popoverContentSize = CGSizeMake(320.0, 44 + [fileList count] * 44);
}
一切正常,我将一个文件名数组 (fileList) 传递到表视图中,该数组作为一个名为 listOfFiles 的数组保存在表视图中。表视图显示文件名,当用户选择一个时,我想将该文件名传递回主视图控制器。但是,我无法从表视图的 didSelectRowAtIndexPath 方法返回到主 VC 的任何通信。我尝试了各种不同方向的出口,我尝试在 didSelectRowAtIndexPath 中创建一个新对象来处理来自表视图的文件名。我可以将文件名传递给新对象,但是当我尝试将其发送到主 VC 时,它再次为空。当弹出框处于活动状态时,我发送到我的主 VC 的所有内容都显示为空。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
NSLog(@"%@", handler.addressForImageFile);
self.popoverController = nil;
[self.popoverController release];
}
为什么我的 Main VC 不会从我的表视图中得到空对象,有什么原因吗?我花了几天时间尝试了很多不同的事情。我觉得我对popovers如何工作的知识存在一些根本性的差距。当从表视图中选择字符串时,肯定有一种简单的方法可以将字符串发送回我的主 VC?
非常感谢您的帮助!