Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableView';s自定义委托不';当从UIPopoverController显示时,无法调用_Ios_Objective C_Uitableview_Delegates_Uipopovercontroller - Fatal编程技术网

Ios UITableView';s自定义委托不';当从UIPopoverController显示时,无法调用

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(

希望有人能解决相关问题。。这让我发疯:/

My UITableViewController实现了一个自定义委托方法:
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;