我有一个背景图片,所有视图中的图像相同,但导航条traslucent默认设置为YES,背景不均匀。我尝试了各种解决方案,但没有任何改变:(
我的AppDelegate.h
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
我的AppDelegate.m
#import "AppDelegate.h"
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >>16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UINavigationBar appearance] setBarTintColor: UIColorFromRGB(0x45312a)];
[[UINavigationBar appearance] setTintColor: [UIColor whiteColor]];
NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
self.navigationController.navigationBar.translucent = NO;
}
return YES;
}
但是在行中:
self.navigationController.navigationBar.translucent = NO;
给我这些错误:在'AppDelegate *'类型的对象上找不到属性'navigationController'
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:13)
您可以在根视图控制器中执行此操作
//inside the root view controller
- (void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController.navigationBar setTranslucent:NO];
}
您还可以在界面构建器中切换半透明。选择导航控制器,然后在文档大纲中选择导航栏,只需在属性检查器
中进行更改
答案 1 :(得分:2)
因为AppDelegate不是导航控制器。您可以在之前的行中执行的操作是全局设置导航栏外观。
[[UINavigationBar appearance] setTranslucent:NO];
答案 2 :(得分:-2)
尝试使用ios 7
[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]];