导航项标题视图 - 对于所有推送的视图控制器都相同

Joh*_*rek 9 objective-c uinavigationitem ios

如何为所有推送的视图控制器保持导航项标题视图相同?

例如,我想将标题视图设置为应该对所有屏幕都可见的徽标.

UIImage *logoImage = [UIImage imageNamed:@"navigation-bar-logo"];
UIImageView *titleLogo = [[UIImageView alloc] initWithImage:logoImage];
self.navigationItem.titleView = titleLogo;
Run Code Online (Sandbox Code Playgroud)

如果我为每个视图控制器单独设置它,iOS7导航栏动画看起来很奇怪.

Irf*_*fan -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;    
Run Code Online (Sandbox Code Playgroud)

这里我使用 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;
Run Code Online (Sandbox Code Playgroud)

希望这些信息对您有帮助。干杯:)