gpt4 book ai didi

ipad - 从弹出窗口调用委托(delegate)方法

转载 作者:行者123 更新时间:2023-12-02 05:36:40 24 4
gpt4 key购买 nike

我使用 ios5、Xcode 4、iPad 开发一个项目。

我在主视图中通过标准按钮触发了一个弹出窗口。我已经在 Storyboard 中设置了弹出窗口,其中一个 segue 锚定到一个标准按钮。

UIPopoverControllerDelegate 是我的主视图 Controller

 @interface ViewController : UIViewController <UIPopoverControllerDelegate>

当我在弹出窗口中选择一行时,我想

  • 关闭弹出窗口并
  • 调用 UIPopoverControllerDelegate 方法 popoverControllerDidDismissPopover。

这是我的弹出窗口的 TableView 委托(delegate)中的代码:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath      *)indexPath {
myKey = [myArray objectAtIndex:indexPath.row];
[popoverController dismissPopoverAnimated:YES];
// [popoverController.delegate popoverControllerDidDismissPopover];

没有最后一行,一切正常,包括行选择和解散。

但我对最后一行代码感到困惑

     [popoverController.delegate popoverControllerDidDismissPopover];

如果此行未注释,我会收到编译器错误:“选择器 popoverControllerDidDismissPopover 没有已知的实例方法”。使用以下代码在主视图 Controller 中设置弹出窗口委托(delegate):

- (void) prepareForSegue:(UIStoryboardPopoverSegue *) segue sender:(id) sender {
if ([[segue destinationViewController] isKindOfClass:[RGBViewController class]]) {
RGBViewController* viewController = (RGBViewController*)[segue destinationViewController];
UIStoryboardPopoverSegue* popoverSegue = (UIStoryboardPopoverSegue*)segue;
[viewController setPopoverController:[popoverSegue popoverController]];
[[popoverSegue popoverController] setDelegate:self];
}
}

有什么帮助吗?

谢谢。

最佳答案

您缺少该属性。您要查找的行是:

[popoverController.delegate popoverControllerDidDismissPopover:popoverController];

你有什么特别的理由想这样调用它吗?我相信当您关闭弹出窗口时应该为您调用它。

关于ipad - 从弹出窗口调用委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11593620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com