1

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

在 iPhone 和 iPod Touch 上,我通过调用让选择视图控制器占据整个屏幕:

[self presentViewController:choiceController animated:YES completion:nil];

在 iPad 上,我通过调用以下命令在弹出窗口中显示相同的视图控制器的视图:

    [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];

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

在 iPhone 和 iPod Touch 上,我通过调用以下方式做出选择的关闭块:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:[self dismissBlockDone]];

但在 iPadpresentingViewController上始终为零,即使我自己使用上述调用将指针传递给呈现视图控制器,在 iPad 上也没有任何作用。

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

有什么建议么?

4

2 回答 2

6

你不应该这样称呼:

   [popoverController dismissPopoverAnimated:YES];

关闭弹出窗口?还是我不明白什么?

于 2012-10-04T09:33:26.807 回答
0

称呼

[popoverController dismissPopoverAnimated:NO];

希望这可以帮助!

于 2012-10-04T10:15:00.340 回答