gpt4 book ai didi

objective-c - 隐藏然后重新显示 UINavigationBar 会导致问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:24 24 4
gpt4 key购买 nike

我在viewDidLoad中隐藏了状态栏和导航栏

- (void)viewDidLoad {
[super viewDidLoad];

[self.navigationController setNavigationBarHidden:YES animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}

一切正常。但是,当我关闭 View Controller 时,在 viewWillDisappear: I do:

- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}

这导致我所有的 View 都被错误定位: enter image description here

我做错了什么?谢谢

最佳答案

我没有试过,所以我只是猜测。您的导航栏有一个框架设置,就好像没有 Status bar 一样。某些事情以错误的顺序完成。
因此,在您的代码中,我看到当没有状态栏时要求导航栏可见。

[self.navigationController setNavigationBarHidden:NO animated:YES];    
[[UIApplication sharedApplication] setStatusBarHidden:NO];

您是否尝试过反转这两行? (我只是猜测)

我的另一个测试是将导航栏设置为在 viewDidAppear 中可见。
那时 applicationFrame 应该已经更新到状态栏再次可见的事实。


我已经对其进行了测试,并反转调用使其工作。但是您不会获得导航栏和状态栏的动画。如果您需要它们,我建议您将这些调用放在 viewWillAppearviewDidAppear

关于objective-c - 隐藏然后重新显示 UINavigationBar 会导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12047767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com