呈现popoverController会导致状态栏消失

时间:2015-05-07 07:29:55

标签: ios objective-c

在我的iPad应用中,我使用popoverController来呈现一个viewController。如果我用这个viewController初始化popover,一切都很好。

但是,如果我使用此viewcontroller作为navigationController的根控制器,并使用navigationController初始化弹出框,则状态栏文本会在演示后消失。

我在演示文稿后检查了UIStatusBarHiddenUIStatusBarStyle,它们很好,没有隐藏,仍然是UIStatusBarStyleLightContent

那个状态栏在哪里?

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:settingsController];
thisPopoverController = [[UIPopoverController alloc] initWithContentViewController:navController];

thisPopoverController.delegate = self;
settingsController.popOverController = thisPopoverController;

UIView *presentView = self.view.superview;
CGRect presentRect = [selectedCell convertRect:[selectedCell bounds] toView:presentView];
[thisPopoverController presentPopoverFromRect:presentRect inView:presentView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

我刚刚发现,在弹出窗口后,statusBar的alpha设置为0 ...问题是没有办法设置alpha。这是怎么发生的?

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用委托方法popoverControllerDidDismissPopover:

来实现它
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

答案 1 :(得分:0)

试试这个,

settingsController.delegate = self;
UINavigationController *navController =  [[UINavigationController alloc] initWithRootViewController:settingsController];
thisPopoverController = [[UIPopoverController alloc] initWithContentViewController:navController];
[thisPopoverController presentPopoverFromRect:<required frame> inView:<presenting View> permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
相关问题