2015-06-21 103 views
0

我无法弄清楚为什么popoverControllerDidDismissPopover未被调用。popoverControllerDidDismissPopover未被调用

我已经搜索过,我不打电话通过动画解雇popover,我想我的所有代表信息都是正确的。

下面的代码是用来设置segues的,当用户完成选择时会发生什么。

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    UIStoryboardPopoverSegue *popoverSegue; 
    popoverSegue=(UIStoryboardPopoverSegue *)segue; 
    UIPopoverController *popovercontroller; 

    popovercontroller = popoverSegue.popoverController; 
    popovercontroller.contentViewController.title = segue.identifier; 
    popovercontroller.delegate = self; 
    _popoverController.delegate = self; 


    NSLog(@" %@",segue.identifier); 

    if ([[segue identifier] isEqualToString:@"PISegue"]){ 
     PIViewController *PrimVC; 
     PrimVC=(PIViewController *)popovercontroller.contentViewController; 

    } 
    if ([[segue identifier]isEqualToString:@"LASegue"]) { 
     LAViewController *LearnVC; 
     LearnVC=(LAViewController *)popovercontroller.contentViewController; 

    } 
} 



-(void) popoverControllerDidDismissPopover:(UIPopoverController *)popoverController{ 
     NSLog(@"Popovercontroller did dismiss method called."); 
     NSString *temp; 
    if ([popoverController.contentViewController.title isEqualToString:@"PISegue"]) { 
     temp = ((PIViewController *)popoverController.contentViewController).selected; 
     _primaryInterestTextField.text = temp; 
     NSLog(@"PI: %@",temp); 

     [_primaryInterestButton setTitle:@"" forState:UIControlStateNormal]; 

    } 
    if ([popoverController.contentViewController.title isEqualToString:@"LASegue"]) { 
     temp = ((LAViewController *)popoverController.contentViewController).selected; 
     _learnAboutTextField.text = temp; 
     NSLog(@"LA: %@",temp); 
     [_learnAboutButton setTitle:@"" forState:UIControlStateNormal]; 
    } 
} 

回答

0

有没有可能在头文件中没有包含UIPopoverControllerDelegate?如果是这样,添加它应该可以解决问题。