Azi*_*lah 2 iphone objective-c ipad uipopovercontroller ios
我创建了一个UIPopoverController并将其添加到视图控制器时单击UIButton如下所示
- (void)viewDidLoad
{
[super viewDidLoad];
controller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
popoverController = [[UIPopoverController alloc] initWithContentViewController:controller];
}
- (IBAction)showPopover:(UIButton *)sender
{
if ([popoverController isPopoverVisible]) {
[popoverController dismissPopoverAnimated:YES];
} else {
CGRect popRect = CGRectMake(self.btnShowPopover.frame.origin.x,
self.btnShowPopover.frame.origin.y,
self.btnShowPopover.frame.size.width,
self.btnShowPopover.frame.size.height);
[popoverController presentPopoverFromRect:popRect
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
btnShowPopover是UIButton在viewcontroller,popoverController是UIPopoverController.
的popovercontroller同时单击该按钮显示正常.
但它不会解雇当我点击UIButton的secondviewcontroller
我使用了以下代码
-(IBAction)y:(id)sender{
fs = [[Firstviewcontroller alloc] initWithNibName:@"FIrstscreen" bundle:[NSBundle mainBundle]];
[fs.popoverController dismissPopoverAnimated:TRUE];
}
Run Code Online (Sandbox Code Playgroud)
但它没有用.
popovercontroller单击添加到viewcontoller中的按钮时如何关闭popovercontroller?
您正在分配一个新实例Firstviewcontroller,因此它不会忽略前一个实例的弹出窗口.
当您显示popover时需要传递旧实例,如:
- (void)viewDidLoad
{
[super viewDidLoad];
controller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]];
popoverController = [[UIPopoverController alloc] initWithContentViewController:controller];
[controller setFs:self]
}
Run Code Online (Sandbox Code Playgroud)
和解雇一样:
-(IBAction)y:(id)sender
{
[fs.popoverController dismissPopoverAnimated:TRUE];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12783 次 |
| 最近记录: |