Ios UITableView';s自定义委托不';当从UIPopoverController显示时,无法调用
希望有人能解决相关问题。。这让我发疯:/ My UITableViewController实现了一个自定义委托方法:Ios UITableView';s自定义委托不';当从UIPopoverController显示时,无法调用,ios,objective-c,uitableview,delegates,uipopovercontroller,Ios,Objective C,Uitableview,Delegates,Uipopovercontroller,希望有人能解决相关问题。。这让我发疯:/ My UITableViewController实现了一个自定义委托方法: h m 在我的iPad主视图中,我通过UIPopoverController显示此UITableView: @interface ProjectViewController ()<folderDelegate> 并通过以下方式处理代表: - (void) folderViewDidSelectPlan:(NSString *)planId { NSLog(
h m 在我的iPad主视图中,我通过UIPopoverController显示此UITableView:
@interface ProjectViewController ()<folderDelegate>
并通过以下方式处理代表:
- (void) folderViewDidSelectPlan:(NSString *)planId
{
NSLog(@"called");
}
然而,folderViewDidSelectPlan从未接到过电话——我真的被困在这里,希望任何人都知道如何解决这个问题
非常感谢 尝试将属性声明更改为:
@property (assign) id<folderDelegate> delegate;
@property(assign)id委托;
并且每次都使用self.delegate而不是UITableViewController.m文件中的delegate,而不仅仅是delegate。
如果您不必支持iOS4或更低版本,请从UITableViewController.m中删除Synthesis。如何在UITableViewController.h文件中声明委托属性?您应该将其称为self.delegate或_delegate,而不是[delegate folderViewDidSelectPlan:[row objectForKey:@“id”];嗨@greg,谢谢-忘了发这个。。我已将其声明为'@property(非原子,赋值)id delegate;'-当然还有“@syntheticdelegate;”在.m文件中。尝试每次使用self.delegate而不是UITableViewController.m文件,而不是仅使用delegate。谢谢@Greg-尝试过,但没有任何区别:/谢谢@Cy-4AH,刚刚解决了这个问题:)谢谢@Greg-这确实有帮助,尽管我自己犯了一个可怕的错误。。在选择文件夹时,我的TableView确实使用“父文件夹id”=“当前文件夹”id调用自己(我正在显示文件夹和文件,代理在选择文件时应该调用),因此我必须让代理通过。再次感谢你的帮助!
@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];
}
- (void) folderViewDidSelectPlan:(NSString *)planId
{
NSLog(@"called");
}
@property (assign) id<folderDelegate> delegate;