我在 View 确实加载方法中设置导航 Controller 的色调,如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationController *navigationController = [self navigationController];
navigationController.navigationBar.barTintColor = [UIColor redColor];
}
上面将我的导航栏设置为红色,没有问题。
当用户关闭应用程序并对应用程序的状态进行编码,然后重新打开应用程序并对状态进行解码时,导航栏将显示默认的白色。
状态恢复时正在调用 View 加载,但导航 Controller 为零。我猜这就是默认颜色回来的原因。
我已经在我的导航 Controller 以及正在更改颜色的 View Controller 上设置了恢复 ID。
有人知道我可以做什么来保持为导航 Controller 设置的红色吗?
最佳答案
这可能是由于在将 View Controller 添加为导航 Controller 的子 Controller 之前加载了 View 。
代替viewDidLoad
,在didMoveToParentViewController:
中实现代码,如下所示:
- (void)didMoveToParentViewController:(UIViewController *)parent
{
[super didMoveToParentViewController:parent];
UINavigationController *navigationController = (UINavigationController*)parent;
navigationController.navigationBar.barTintColor = [UIColor redColor];
}
关于ios - uinavigationcontroller 在 iOS 中恢复状态时失去色彩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571412/