我在 UIViewController 的 viewDidLoad 中使用了这段代码。我没有错误。图像存在。我得到背景但不是图像。图片是一种标志。
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
/* Background of navigationBar. */
UIImage * navigationBarImage = [UIImage imageNamed:@"01_navbar_portrait.png"];
[self.navigationController.navigationBar setBackgroundImage:navigationBarImage forBarMetrics:UIBarMetricsDefault];
/* Image in navigationBar */
UIImage * logoInNavigationBar = [UIImage imageNamed:@"01_logo.png"];
UIImageView * logoView = [[UIImageView alloc] init];
[logoView setImage:logoInNavigationBar];
self.navigationController.navigationItem.titleView = logoView;
}
最佳答案
UINavigationController
通过查看导航堆栈上最顶层 View Controller 的 navigationItem
属性来管理导航栏。因此,要将 View 更改为 Logo ,您需要在使用 Logo 的 View Controller (即 Root View Controller 或另一个被压入堆栈的 View Controller )中进行设置。
在 View Controller 的 viewDidLoad
中做这样的事情:
UIImage* logoImage = [UIImage imageNamed:@"logo.png"];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:logoImage];
在您的情况下,您设置了错误的导航项:
// Oops...
self.navigationController.navigationItem.titleView = logoView;
// Should be this:
self.navigationItem.titleView = logoView;
关于ios - 如何将图像放在 UIViewController 的导航栏中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15199980/