如何在导航控制器栏上覆盖视图?

6

我有一个小问题,我正在尝试在我的应用程序中添加一个弹出视图,但是弹出视图的一部分被我的导航控制器栏覆盖了。我该如何使我的弹出视图覆盖在导航控制器栏的上方?下面是问题的图片:http://img593.imageshack.us/img593/4056/viewn.jpg

这是我正在使用的代码:

- (IBAction)onButtonClick:(UIButton *)button {

if (self.popoverController) {
    [self.popoverController dismissPopoverAnimated:YES];
    self.popoverController = nil;
    [button setTitle:@"Show Popover" forState:UIControlStateNormal];
} else {
    UIViewController *contentViewController = [[WEPopoverContentViewController alloc] initWithStyle:UITableViewStylePlain];

    self.popoverController = [[[WEPopoverController alloc] initWithContentViewController:contentViewController] autorelease];
    [self.popoverController presentPopoverFromRect:button.frame 
                                            inView:self.view 
                          permittedArrowDirections:UIPopoverArrowDirectionDown
                                          animated:YES];
    [contentViewController release];
    [button setTitle:@"Hide Popover" forState:UIControlStateNormal];
}
}

有没有办法让这个浮动窗口出现在导航控制栏之上?
希望有人能知道如何解决这个问题,在此提前感谢。
2个回答

8

这是否与 WEPopoverController presentPopoverFromRect:inView:permittedArrowDirections:animated: 方法中的 inView 参数有关呢?是否可以在视图层次结构中更高的位置(例如在 self.view.window 中)展示,而不是在 self.view 中展示呢?


哦我的天啊!!!我试过了,但我没有特别尝试self.view.window。我试过self.window和super.view等等。非常感谢。它完美地运行。 - 0SX

0

哦,我明白了,我在函数中修改了一行代码

- (void)presentPopoverFromRect:(CGRect)rect 
                    inView:(UIView *)theView 
  permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections 
                  animated:(BOOL)animated {

在 WEPopOverController 中,将 [keyView addSubview:backgroundView]; 替换为 [theView addSubview:backgroundView];


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接