2013-05-06 115 views
1

編輯:解決。看到我的評論爲什麼..對不起,這個爛攤子,不能夠作爲一個新手發表一個答案自己..從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

回答

0

問題是故事板參考,它實際上指向導航控制器。上面的代碼就像一個魅力。

0

請試試這個。

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