无法设置UIViewController导航栏的颜色

时间:2019-02-27 05:14:10

标签: ios objective-c background uinavigationcontroller uinavigationbar

我正在向我的视图控制器显示以下代码:

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:sessionController];
[self presentViewController:navigation animated:YES completion:^{

}];

在呈现的视图控制器“ viewDidLoad”方法中,我尝试使用以下方法设置导航栏颜色,但不成功:

self.navigationController.navigationBar.tintColor = [UIColor blackColor];
self.navigationController.navigationBar.backgroundColor = [UIColor blackColor];
self.navigationController.view.backgroundColor = [UIColor blackColor];
UINavigationBar.appearance.backgroundColor = [UIColor blackColor];
UINavigationBar.appearance.tintColor = [UIColor blackColor];

导航栏的颜色不会从白色更改。任何建议将不胜感激。

注意:我没有使用故事板或XIB文件。

2 个答案:

答案 0 :(得分:0)

尝试以下代码更改背景色:

function getDuplicates(param) {
  var duplicates = {}

  for (var i = 0; i < param.length; i++) {
    var char = param[i]
    if (duplicates[char]) {
      duplicates[char]++
    } else {
      duplicates[char] = 1
    }
  }
  return duplicates
}

console.log(getDuplicates("aeiouaeiou"));
console.log(getDuplicates(["a", "e", "i", "o", "u", "a", "e"]));
console.log(getDuplicates([1, 2, 3, 4, 5, 1, 1, 2, 3]));

答案 1 :(得分:0)

应用颜色时,导航控制器对象将创建。像下面这个例子。

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:sessionController];

navigation.navigationBar.tintColor = [UIColor blackColor];
navigation.navigationBar.backgroundColor = [UIColor blackColor];
navigation.navigationBar.barTintColor = [UIColor blackColor];


[self presentViewController:navigation animated:YES completion:^{

}];

在此方法下,所有导航控制器都会更改颜色。

UINavigationBar.appearance.backgroundColor = [UIColor blackColor];
UINavigationBar.appearance.tintColor = [UIColor blackColor];