OStack程序员社区-中国程序员成长平台

标题: ios - uinavigationcontroller 在 iOS 中失去状态恢复的色彩 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 08:52
标题: ios - uinavigationcontroller 在 iOS 中失去状态恢复的色彩

我在 View 中设置我的导航 Controller 的色调确实加载方法如下:

- (void)viewDidLoad
{
    [super viewDidLoad];
    UINavigationController *navigationController = [self navigationController];
    navigationController.navigationBar.barTintColor = [UIColor redColor];
}

上面将我的导航栏设置为红色,没有问题。

当用户关闭应用并且应用的状态被编码然后重新打开应用并且状态被解码时,导航栏显示默认的白色。

在状态恢复时调用 View did load 但导航 Controller 为零。我猜这就是为什么默认颜色回来了。

我已经在我的导航 Controller 以及正在改变颜色的 View Controller 上设置了恢复 ID。

有谁知道我可以做些什么来保持我为导航 Controller 设置的红色?



Best Answer-推荐答案


这可能是由于在将 View Controller 添加为导航 Controller 的子 Controller 之前加载了 View 。

代替viewDidLoad,像这样实现didMoveToParentViewController:中的代码:

- (void)didMoveToParentViewControllerUIViewController *)parent
{
    [super didMoveToParentViewController:parent];

    UINavigationController *navigationController = (UINavigationController*)parent;
    navigationController.navigationBar.barTintColor = [UIColor redColor];
}

关于ios - uinavigationcontroller 在 iOS 中失去状态恢复的色彩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571412/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4