如何在触摸接受选择的按钮后关闭弹出窗口中的视图控制器

Ric*_*ild 1 iphone ipad dismiss uipopovercontroller ios

在我目前针对iOS 5.0及更高版本的项目中,我希望显示一个带有一些按钮的视图,让用户可以选择当前在屏幕上绘制的内容的布局.

在iPhone和iPod Touch上,我让选择视图控制器通过调用以下方式接管整个屏幕:

[self presentViewController:choiceController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

在iPad上,我通过调用以下方法在popover中显示相同的视图控制器视图:

    [self setChooseLayoutPopover:[[UIPopoverController alloc] initWithContentViewController:choiceController]];
    [[self chooseLayoutPopover] setDelegate:self];
    [[self chooseLayoutPopover] setPopoverContentSize:CGSizeMake(320.0, 460.0)];        
    [[self chooseLayoutPopover] presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我将两个消除块传递给选择视图控制器,一个用于实际选择布局,另一个用于用户取消操作.在iPad上触摸弹出边界确实取消了它,在iPhone和iPod Touch上我显示了一个也可以使用的取消按钮.

在iPhone和iPod Touch上,我通过调用以下方式选择块来进行选择:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:[self dismissBlockDone]];
Run Code Online (Sandbox Code Playgroud)

但是在iPad presentingViewController上总是为零,即使我使用上述调用将指针传递给我的呈现视图控制器,也无法在iPad上执行任何操作.

我确实实现-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController并将呈现视图控制器设置为popover的委托,并且当用户触摸popover外部时调用此方法,但是在用户实际触摸选择按钮后我找不到要调用的内容.我可以设置所选的值,但我不知道如何摆脱后来的popover.

有什么建议?

ser*_*gio 6

你不应该打电话给:

   [popoverController dismissPopoverAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

解雇popover?或者我不明白什么?