我似乎无法在我的主视图控制器和显示在弹出视图(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的数组的形式保存在Table View中。表视图显示文件名,当用户选择一个文件名时,我想将该文件名传回主视图控制器。但是,我无法从Table View的didSelectRowAtIndexPath方法返回Main VC。我尝试过各种各样的网点,并尝试在didSelectRowAtIndexPath中创建一个新对象来处理来自表视图的文件名。我可以将文件名传递给新对象,但是当我尝试将其发送到主VC时,它将再次为空。在弹出窗口处于活动状态时发送给我的主VC的所有内容都会显示为空。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
NSLog(@"%@", handler.addressForImageFile);
self.popoverController = nil;
[self.popoverController release];
}
是有一些原因,我的主要VC不会得到任何东西,但我从表视图空的对象?我花了好几天尝试了很多不同的东西。我觉得我的知识丰富如何工作有一些根本性的差距。当从表视图中选择一个简单的方法将字符串发送回主VC时?
非常感谢您的帮助!
谢谢。我最终通过使用我的主视图控制器作为数据源和表视图的代理来解决此问题。希望几天前我想到了这一点,并为自己节省了很多痛苦! – beev 2011-05-07 15:52:16
值得注意的是,如果您最终将主视图控制器用作数据源/代理,则此答案可以为您节省一些Google搜索 - http://stackoverflow.com/a/11068532/953105 – paulrehkugler 2013-05-15 03:34:47