我想玩UIPopupController,我明白我无法检测到我的popover何时解雇.
我的步骤:
1.从XCode创建示例(文件 – >新项目 – >实用应用程序)
2.添加到MainViewController.h UIPopoverControllerDelegate
我的步骤:
1.从XCode创建示例(文件 – >新项目 – >实用应用程序)
2.添加到MainViewController.h UIPopoverControllerDelegate
#import "FlipsideViewController.h" @interface MainViewController : UIViewController <FlipsideViewControllerDelegate,UIPopoverControllerDelegate> @property (strong,nonatomic) UIPopoverController *flipsidePopoverController; - (IBAction)showInfo:(id)sender; @end
>在MainViewController中:
- (IBAction)showInfo:(id)sender { if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideViewController" bundle:nil]; controller.delegate = self; controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:controller animated:YES]; } else { if (!self.flipsidePopoverController) { FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideViewController" bundle:nil]; controller.delegate = self; self.flipsidePopoverController.delegate = self self.flipsidePopoverController = [[UIPopoverController alloc] initWithContentViewController:controller]; } if ([self.flipsidePopoverController isPopoverVisible]) { [self.flipsidePopoverController dismissPopoverAnimated:YES]; } else { [self.flipsidePopoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; } } } -(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController { NSLog(@"OLOLO"); }
但是当我点击某个地方,并且popover消失时,Console中没有NSLog消息.
我究竟做错了什么?
解决方法
将popover的代表设置为self,你也可以使用两个popover代理,即: –
/* Called on the delegate when the popover controller will dismiss the popover. Return NO to prevent the dismissal of the view. */ - (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController; /* Called on the delegate when the user has taken action to dismiss the popover. This is not called when -dismissPopoverAnimated: is called directly. */ - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。