从popover委托方法不叫?

问题描述:

编辑:解决。看到我的评论为什么..对不起,这个烂摊子,不能够作为一个新手发表一个答案自己..从popover委托方法不叫?

iPad的应用程序:我有一个表视图,并从附件实例化与另一个tableview的popover。在popover中,我想选择一个单元并将该索引传回给rootView。

我在PopoverController中实现了一个协议,并使RootViewController符合它。

为什么root视图中的backPopover方法不被调用?

任何提示非常感谢!

编辑:该故事板参考指向导航控制器。本身工作正常的酥料饼..

RootViewController.h

#import "PopoverViewController.h" 


@interface rootViewController : UITableViewController <UIPopoverControllerDelegate, UITableViewDelegate, AddDelegate> 
{ 
    UIPopoverController *popOverController; 
} 

@property (nonatomic, retain) UIPopoverController *popOverController; 
@property (nonatomic) PopoverContent *popoverContent; 

RootView.m

-(void) backPopover:(int)index 
{ 
    NSLog(@"index sent:%i", index); 
    [popOverController dismissPopoverAnimated:YES]; 
} 


// accessoryView Button 
- (void) popOver:(UIButton*)paramSender 
{ 
    UITableViewCell *cell = (UITableViewCell*)paramSender.superview; 
    if (cell != nil) 
    { 

     //Table position for popover 
     UIButton *button = (UIButton *)cell.accessoryView; 

      if(![self popoverContent]) 
      { 
       popoverContent = [[self storyboard]instantiateViewControllerWithIdentifier:@"PopoverContent"]; 
       [popoverContent setDelegate:self]; 
       popOverController = [[UIPopoverController alloc]initWithContentViewController:popoverContent]; 
       popOverController.popoverContentSize = CGSizeMake(320.0, 600.0); 
       [popOverController setDelegate:self]; 
      } 

     CGRect rect = button.frame; 
     [popOverController presentPopoverFromRect:rect inView:cell permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
    } 
} 

PopoverController.h

@protocol AddDelegate <NSObject> 

- (void)backPopover: (int)index; 

@end 

@property (nonatomic, weak) id <AddDelegate> delegate; 

PopoverController.m

@synthesize delegate; 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    [self.delegate backPopover:indexPath.row]; 

} 
+0

popovercontroller仅在iPad中受支持。 – 2013-05-06 20:12:59

+0

我就是这样一个白痴,我没有提到,它是一个n的iPad应用程序..大对不起! – L00ps 2013-05-06 20:14:04

+0

问题是故事板参考,它实际上指向一个导航控制器..删除它,上面的代码就像一个魅力。其实,我不知道为什么我把它放在第一位.. 我爱我如何寻找我的答案几个小时(天?)..并在学习如何问这里问题和重新编辑的过程中我的几篇文章,我自己来解决。 – L00ps 2013-05-06 21:44:53

问题是故事板参考,它实际上指向导航控制器。上面的代码就像一个魅力。

请试试这个。

MyViewController *viewController=[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 
UIPopoverController* aPopover = [[UIPopoverController alloc] 
         initWithContentViewController:popupController]; 
+0

非常感谢你的回答!可悲的是这并没有解决我的问题。应用程序崩溃:NSInternalInconsistencyException',原因:'无法在捆绑中加载NIB: – L00ps 2013-05-06 20:33:26

+0

请抱歉,这是我的第一个问题:我忘了提及我在popover中预先添加了navigationController – L00ps 2013-05-06 20:35:00