0

我正在学习objective-c,并且在使顶部导航栏变黑时遇到了一些麻烦。这是我到目前为止所拥有的:

// AppDelegate.h
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *navigationController;
@end

// AppDelegate.m
#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;  // optional
    return YES;
}

我在这里做错了什么/对此不了解?这将如何解决?是不是因为我没有合成navigationController?(什么时候需要合成一些东西?)

4

4 回答 4

0

尝试通过设置Tint

[navbar setTint color:[uicolor blackColor]];

或者

navigationController.navigationBar.barTintColor = [UIColor greenColor];

于 2013-10-26T06:09:09.690 回答
0

这应该在 viewWillappear 或 didappear 中完成

默认情况下,iOS 应用上的 UINavigationBar 是蓝色的。Apple 有一些您可以使用的内置样式

[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackOpaque];

可用的选项有:

UIBarStyleBlack
UIBarStyleBlackOpaque
UIBarStyleBlackTranslucent
UIBarStyleDefault

UIBarStyleBlackOpaque 和 UIBarStyleTranslucent 已被弃用。如果需要,您应该使用 UIBarStyleBlack 并将属性 'translucent' 设置为 yes

您还可以使用以下两行代码之一将颜色更改为您希望的任何颜色并调整颜色值。

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:.7 green:.5 blue:.2 alpha:1];


self.navigationController.navigationBar.tintColor = [UIColor blackColor];
于 2013-10-26T06:14:06.390 回答
0

如果您尝试使用导航控制器堆栈创建应用程序,它通常看起来像这样。

//Appdelegate.h
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

//Appdelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    MyCustomViewController *vc = [[MyCustomViewController alloc] init];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:vc];
    navigationController.navigationBar.barStyle = UIBarStyleBlack;
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}
于 2013-10-26T06:16:50.407 回答
0

使用这可能会有所帮助

self.navigationController.navigationBar.tintColor = [UIColor blackColor];
于 2013-10-26T11:21:37.633 回答