如何为所有推送的视图控制器保持导航项标题视图相同?
E.g。我想将标题视图设置为一个应该对所有屏幕都可见的徽标。
UIImage *logoImage = [UIImage imageNamed:@"navigation-bar-logo"];
UIImageView *titleLogo = [[UIImageView alloc] initWithImage:logoImage];
self.navigationItem.titleView = titleLogo;
如果我单独为每个视图控制器设置它,那么iOS7导航栏动画看起来很奇怪。
答案 0 :(得分:-1)
一种方法是使用UINavigationItem.titleView和 UINavigationItem.rightBarButtonItem。像这样:
viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];
viewController.navigationItem.rightBarButtonItem = item;
这里我使用UIImageView作为自定义视图,但它可以是带有自定义图像的UIButton。
我建议你的另一种方法是不使用viewController
// Create your image
UIImage *image = [UIImage imageNamed: @"logo.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];
// set the text view to the image view
self.navigationItem.titleView = imageview;
希望此信息可以帮助您。干杯:)
答案 1 :(得分:-1)
如果要显示导航项目标题视图 - 所有推送视图控制器都相同
以下是示例。 在appDelegate类中,
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[WARootViewController alloc]init]];
self.window.rootViewController = nav;
在ViewController中,设置imageView框架(可选,您可以提供所需的)和图像名称(如果logoImage提供NULL内存,请提及扩展名。)
UIImage *logoImage = [UIImage imageNamed:@"navigation-bar-logo.jpg"];
UIImageView *titleLogo = [[UIImageView alloc] initWithImage:logoImage];
titleLogo.frame = CGRectMake(0, 0, 50, 30);
self.navigationItem.titleView = titleLogo;
将其余的ViewControllers作为WARootViewControllers的子项
#import "WARootViewController.h"
@interface WAFirstViewController : WARootViewController
#import "WARootViewController.h"
@interface WASecondViewController : WARootViewController