Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UINavigationBar的高度错误,因为加载时状态栏处于隐藏状态_Ios_Objective C_Ios7_Uinavigationbar - Fatal编程技术网

Ios UINavigationBar的高度错误,因为加载时状态栏处于隐藏状态

Ios UINavigationBar的高度错误,因为加载时状态栏处于隐藏状态,ios,objective-c,ios7,uinavigationbar,Ios,Objective C,Ios7,Uinavigationbar,我已将UITabBarController设置为AppDelegate中的根视图控制器 我在窗口上添加了一个加载视图,同时应用程序下载了一些数据。当加载屏幕可见时,我已隐藏状态栏。加载完成后,我将淡入加载视图并再次显示状态栏 我的问题是,当我显示状态栏时,导航栏的高度不正确,因为状态栏在绘制时是隐藏的。如果我换到另一个标签,它会得到正确的高度 我尝试过使用[navigationController.view setNeedsLayout],但这似乎使ViewController视图的位置正确,但

我已将
UITabBarController
设置为
AppDelegate
中的根视图控制器

我在窗口上添加了一个加载视图,同时应用程序下载了一些数据。当加载屏幕可见时,我已隐藏状态栏。加载完成后,我将淡入加载视图并再次显示状态栏

我的问题是,当我显示状态栏时,导航栏的高度不正确,因为状态栏在绘制时是隐藏的。如果我换到另一个标签,它会得到正确的高度

我尝试过使用
[navigationController.view setNeedsLayout]
,但这似乎使ViewController视图的位置正确,但导航栏的内容没有调整大小。我也尝试过
[navigationController.navigationBar setNeedsLayout]
,但这确实有帮助


因此,我基本上想让导航抽屉在加载视图淡出时获得状态栏和内容的正确高度。如何执行此操作?

是否尝试按如下所示重置导航和状态栏

-(void)resetNavigationBar
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

    [self.navigationController setNavigationBarHidden:YES];

    [self.navigationController setNavigationBarHidden:NO];
}

您是否尝试按如下方式重置导航和状态栏

-(void)resetNavigationBar
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

    [self.navigationController setNavigationBarHidden:YES];

    [self.navigationController setNavigationBarHidden:NO];
}

您是否尝试按如下方式重置导航和状态栏

-(void)resetNavigationBar
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

    [self.navigationController setNavigationBarHidden:YES];

    [self.navigationController setNavigationBarHidden:NO];
}

您是否尝试按如下方式重置导航和状态栏

-(void)resetNavigationBar
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

    [self.navigationController setNavigationBarHidden:YES];

    [self.navigationController setNavigationBarHidden:NO];
}

我将在加载视图上的viewwilldiscover:method中取消隐藏状态栏

- (void)viewWillDisappear:(BOOL)animated
{
     [super viewWillDisappear:animated];
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}

我将在加载视图上的viewwilldiscover:method中取消隐藏状态栏

- (void)viewWillDisappear:(BOOL)animated
{
     [super viewWillDisappear:animated];
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}

我将在加载视图上的viewwilldiscover:method中取消隐藏状态栏

- (void)viewWillDisappear:(BOOL)animated
{
     [super viewWillDisappear:animated];
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}

我将在加载视图上的viewwilldiscover:method中取消隐藏状态栏

- (void)viewWillDisappear:(BOOL)animated
{
     [super viewWillDisappear:animated];
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}

这个答案很好,但您应该将setStatusBarHidden:从是更改为否。这个答案很好,但您应该将setStatusBarHidden:从是更改为否。这个答案很好,但您应该将setStatusBarHidden:从是更改为否。