2012-05-29 50 views
1

我有一个以这种方式做了一个正常UIPopoverController:KBIViewController我打电话UIPopoverController不会关闭

-(IBAction)btKBIs_click:(id)sender 
{ 

if(kbiPopOver != NULL) 
    [kbiPopOver dismissPopoverAnimated:YES]; 

KBIViewController *kbiViewController = [[KBIViewController alloc]initWithNibName:@"KBIViewController" bundle:nil CurrentUser:currentUser]; 
kbiViewController.currentStatus = FIRST; 
kbiViewController.firstlist = [currentUser getDescriptions]; 
kbiViewController.mapViewController =self; 


UINavigationController* kbiNavController = [[UINavigationController alloc] initWithRootViewController:kbiViewController]; 

kbiPopOver = [[UIPopoverController alloc] initWithContentViewController:kbiNavController]; 
kbiPopOver.delegate = self; 

kbiViewController.kbiPopOver = kbiPopOver; 

[kbiPopOver presentPopoverFromBarButtonItem:sender 
        permittedArrowDirections:UIPopoverArrowDirectionUp animated:true]; 

} 

里面的类:

[self.kbiPopOver dismissPopoverAnimated:YES]; 
    [self.kbiPopOver.delegate popoverControllerDidDismissPopover:self.kbiPopOver]; 

要消除它,但它不工作。为什么?

回答

1

您是否在班级界面中添加了<UIPopOverControllerDelegate>,并且您是否实施了– popoverControllerDidDismissPopover:方法?只需在您的代码或delgate方法中明确调用dismissPopoverAnimated:,当您在弹出窗口外轻按时。从您的代码中删除[self.kbiPopOver.delegate popoverControllerDidDismissPopover:self.kbiPopOver];

+0

当用户点击它关闭的屏幕时,我希望它在点击视图时消除它......我的意思是我希望它在我需要它时解雇。 –

+0

我没有实现popoverControllerDidDismissPopover应该吗? –

+0

我想关闭KBIViewController的窗口,我做了[self.navigationController popViewControllerAnimated:YES]; 但是不起作用... –