无法设置模态视图控制器的导航栏颜色
Unable to set navigation bar color of modal view controller
我在 iPhone / iOS 8:
上展示了这样的模态视图控制器
UIApplication* application = [UIApplication sharedApplication];
UIWindow* window = application.windows[0];
UIViewController* rootViewController = window.rootViewController;
SomeViewController* someViewController;
UINavigationController* navigationController;
someViewController = [[SomeViewController alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:someViewController];
// Set everything to black.
navigationController.navigationBar.barTintColor = [UIColor blackColor];
navigationController.navigationBar.tintColor = [UIColor blackColor];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
navigationController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[rootViewController presentViewController:navigationController animated:YES completion:nil];
SomeViewController
是一个什么都不做的 empty/fresh 视图控制器(除了还尝试将导航栏设置为黑色,但没有成功)。
这是一个使用故事板的应用程序,NVSlideMenuController 作为 window 的根。
出现的情况是view controller出现了,但是navigation baris/seems完全透明,因为当我把someViewController
的背景颜色设置为红色时,整个屏幕都是红色的(除了标题)。应用程序的其余部分有一个透明的导航栏。
另一件可能相关的事情是,当应用程序进入后台(使用 iPhone 主页按钮)然后再次进入前台时,视图控制器不再可见。
我在这里遗漏了什么或做错了什么?
Try below code, may be its your Solution
#define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:r/256.f green:g/256.f blue:b/256.f alpha:a]
#define ColorNav RGBACOLOR(13, 127, 161, 1.0)
self.navigationController.navigationBar.barTintColor = ColorNav;
self.navigationController.navigationBar.translucent = FALSE;
我在 iPhone / iOS 8:
上展示了这样的模态视图控制器UIApplication* application = [UIApplication sharedApplication];
UIWindow* window = application.windows[0];
UIViewController* rootViewController = window.rootViewController;
SomeViewController* someViewController;
UINavigationController* navigationController;
someViewController = [[SomeViewController alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:someViewController];
// Set everything to black.
navigationController.navigationBar.barTintColor = [UIColor blackColor];
navigationController.navigationBar.tintColor = [UIColor blackColor];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
navigationController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[rootViewController presentViewController:navigationController animated:YES completion:nil];
SomeViewController
是一个什么都不做的 empty/fresh 视图控制器(除了还尝试将导航栏设置为黑色,但没有成功)。
这是一个使用故事板的应用程序,NVSlideMenuController 作为 window 的根。
出现的情况是view controller出现了,但是navigation baris/seems完全透明,因为当我把someViewController
的背景颜色设置为红色时,整个屏幕都是红色的(除了标题)。应用程序的其余部分有一个透明的导航栏。
另一件可能相关的事情是,当应用程序进入后台(使用 iPhone 主页按钮)然后再次进入前台时,视图控制器不再可见。
我在这里遗漏了什么或做错了什么?
Try below code, may be its your Solution
#define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:r/256.f green:g/256.f blue:b/256.f alpha:a]
#define ColorNav RGBACOLOR(13, 127, 161, 1.0)
self.navigationController.navigationBar.barTintColor = ColorNav;
self.navigationController.navigationBar.translucent = FALSE;