如何在模态视图中更改导航栏的背景颜色?

时间:2015-07-22 12:49:06

标签: ios

当我单击自定义tableview中的单元格时,我会显示模态视图。如何在模态视图中更改导航栏的背景颜色? 例如。我想将其更改为黑色。以下代码在prepare segue方法中不起作用。

[destinationNavController.navigationBar setBackgroundColor:[UIColor blackColor]];

 [[UINavigationBar appearance]setBackgroundColor:[UIColor blackColor]];

 [destinationNavController.navigationBar setTintColor:[UIColor blackColor]];

在目标Controller视图的viewDidLoad方法中我写

[self.navigationController.navigationBar setBackgroundColor:[UIColor blackColor]];

 [[UINavigationBar appearance]setBackgroundColor:[UIColor blackColor]];

 [self.navigationController.navigationBar setTintColor:[UIColor blackColor]];// only change the navigation item text color....

还有其他想法吗?

3 个答案:

答案 0 :(得分:1)

这是呈现模态控制器并更改导航栏颜色的正确方法,请写下面的代码: -

[self presentModalViewController:customViewController animated:YES];

customViewController.topViewController.navigationController.navigationBar.tintColor = [UIColor blackColor];

答案 1 :(得分:1)

如果您使用的是ios 7或更高版本,则需要使用barTintColor的{​​{1}}属性。

像这样:

UINavigationBar

答案 2 :(得分:0)

到目前为止,我只在iOS 11中对此进行了测试,在我的情况下,我们的应用程序是白色的,但我想呈现一个黑色的全屏幻灯片,但我仍然想要一个状态栏,白色字母和相同的黑色背景我的主要观点

第1步:使您的视图背景颜色变黑。  您的.xib或故事板中的XCode父母查看背景颜色为黑色(非常重要的一步)

第2步: 在负责此视图的视图控制器中,添加以下内容:

override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }

这使状态文本的颜色为白色。这也适用于iPhone X.