【问题标题】:How can I change navigationBar Background如何更改导航栏背景
【发布时间】:2012-05-23 11:20:11
【问题描述】:

我尝试改变导航栏的背景。

搜索.h:

#import <UIKit/UIKit.h>

@interface Search : UIViewController

@end

搜索.m:

#import "Search.h"

@implementation Search

- (void)viewDidLoad
{

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

UIImage *image = [UIImage imageNamed:@"navigation_header.png"];

[self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

}

我无法更改导航背景。

谢谢。

【问题讨论】:

    标签: objective-c ios xcode navigationbar


    【解决方案1】:

    这实际上比您想象的要简单。在您的应用委托中...

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavBar.png"] forBarMetrics:UIBarMetricsDefault];
        return YES;
    }
    

    这将普遍改变您的导航栏背景图像。

    注意:我相信UINavigationBar's "appearance" 属性在 iOS 5 及更高版本中可用。

    【讨论】:

      【解决方案2】:

      viewController.h

      IBOutlet UINavigationBar *navBar;
      

      viewController.m //颜色

      - (void)viewDidLoad{  
      [super viewDidLoad];
       [navBar setTintColor:[UIColor colorWithRed:0.0/255.0 green:100.0/255.0 blue:20.0/255.0 alpha:1.0]];
      }
      

      //用于图像

       UIImage *image = [UIImage imageNamed:@"navigation_header.png"];
      [self.navigationController.navBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
      

      【讨论】:

      • 在“UINavigationController *”类型的对象上找不到属性“navBar”
      • 使用这个 self.navigationController.navigationBar
      • 背景图像不会改变,因为 nb 没有连接任何东西。
      • 所以?顺便说一句,我没有“nb”
      • 你自定义添加了navigationController ??
      【解决方案3】:
      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
      
      self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
          self.viewController = [[[Search alloc] initWithNibName:@"Search" bundle:nil] autorelease];
          navControl = [[UINavigationController alloc] initWithRootViewController:self.viewController];
      [self.window addSubview:[navControl view]];
      [self.window makeKeyAndVisible];
      

      }

      在 AppDelegate.m 中编写此方法。我想这对你会有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-27
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多