从模态呈现的视图控制器中呈现UIPopoverController

时间:2011-11-29 20:00:25

标签: objective-c ios ipad uipopovercontroller uimodalpresentationformsh

是否无法从显示为UIModalPresentationFormsheet的视图控制器中显示弹出窗口控制器?或者我错过了什么?

此代码在非模态视图控制器上正常工作,并正确显示弹出窗口。(WEPopoverController是here的自定义实现。)

    GenericDataTableViewController *genericDataController = [[GenericDataTableViewController alloc] initWithNibName:@"GenericDataTableViewController" bundle:[NSBundle mainBundle]];

    genericDataController.dataSource = [NSMutableArray arrayWithObjects:@"asli", nil];
    genericDataController.delegate = self;
    genericDataController.contentSizeForViewInPopover = CGSizeMake(300, 46 * [genericDataController.dataSource count]);

    self.popoverController = [[[WEPopoverController alloc] initWithContentViewController:genericDataController] autorelease];
    self.popoverController.delegate = self;
    [self.popoverController presentPopoverFromRect:((UIButton *)sender).frame
                                            inView:self.view
                          permittedArrowDirections:UIPopoverArrowDirectionUp
                                          animated:YES];
    [genericDataController release];

但是当我把它放在模态视图控制器中时,它会在模态控制器下方呈现弹出窗口,即在呈现模态控制器的视图控制器上。因此,用户无法看到它。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

问题的评论中解释了答案,但我在此总结了一个更清洁的Q& A。

如果您的弹出控制器是UIPopoverController,那么从表单内部显示弹出控制器没有任何限制。我的问题是由于WEPopoverController的实施。

因此,牺牲视觉体验并继续保持良好的旧UIPopoverController