gpt4 book ai didi

ios - 从 UIPopoverController 显示时,不会调用 UITableView 的自定义委托(delegate)

转载 作者:行者123 更新时间:2023-11-28 22:18:09 26 4
gpt4 key购买 nike

希望有人必须解决相关问题..这让我抓狂:/

我的 UITableViewController 实现了一个自定义委托(delegate)方法:
.h

@protocol folderDelegate
@required
- (void)folderViewDidSelectPlan:(NSString*)planId;
@end

@interface FolderViewController : UITableViewController
@property (nonatomic, assign) id delegate;
@end

.m

@implementation FolderViewController
@synthesize delegate;

...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
NSDictionary *row = [self->resultsPlan objectAtIndex:indexPath.row];
if ([delegate respondsToSelector:@selector(folderViewDidSelectPlan:)]) {
[delegate folderViewDidSelectPlan:[row objectForKey:@"id"]];
}
}

在我的 iPad 的主视图中,我通过 UIPopoverController 显示这个 UITableView:

@interface ProjectViewController ()<folderDelegate>

...

- (void) selectPlan:(UIBarButtonItem*)sender
{
if([self->popoverSelectPlanController isPopoverVisible]){
[self->popoverSelectPlanController dismissPopoverAnimated:YES];
}

FolderViewController *folder = [[FolderViewController alloc] initWithStyle:UITableViewStyleGrouped withInstallation:self->_installationId withProjectId:self->_projectId withParentFolderId:@""];
folder.delegate = self;

UINavigationController *folderNavView = [[UINavigationController alloc] initWithRootViewController:folder];

self->popoverSelectPlanController = [[UIPopoverController alloc] initWithContentViewController:folderNavView];
[self->popoverSelectPlanController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

并通过以下方式处理委托(delegate):

- (void) folderViewDidSelectPlan:(NSString *)planId
{
NSLog(@"called");
}

但是,folderViewDidSelectPlan 永远不会被调用 - 我真的被困在这里,希望任何人都知道如何解决这个问题。

非常感谢!

最佳答案

尝试将属性声明更改为:

@property (assign) id<folderDelegate> delegate;

并且每次都使用 self.delegate 而不是在 UITableViewController.m 文件中,而不仅仅是委托(delegate)。如果您不必支持 iOS4 或更低版本,请从 UITableViewController.m 中删除合成。

关于ios - 从 UIPopoverController 显示时,不会调用 UITableView 的自定义委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091400/

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