无法在主视图控制器和弹出视图之间传递消息

时间:2011-05-05 11:05:39

标签: uitableview uinavigationcontroller uipopovercontroller popover uipopover

我似乎无法在主视图控制器和正在弹出视图(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的didSelectRowAtIndexPath方法返回到主VC的任何通信。我尝试了各种各样的方向,我尝试在didSelectRowAtIndexPath中创建一个新对象来处理来自表视图的文件名。我可以将文件名传递给新对象,但是当我尝试将其发送到主VC时,它再次为空。当弹出窗口处于活动状态时,我发送到主VC的所有内容都显示为null。

    - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {

    NSLog(@"%@", handler.addressForImageFile);

    self.popoverController = nil;
    [self.popoverController release];
}

为什么我的主VC不能从我的表视图中获取除空对象之外的任何东西?我花了好几天尝试了很多不同的事情。我觉得我对流行音乐的运作方式有一些根本性的差距。当从表视图中选择字符串时,有一种简单的方法可以将字符串发送回我的主VC吗?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

有一个更好的方法可以做到这一点,但根据传递字符串的目标,一种方法可能是使用NSUserDefaults。