导航项目标题视图 – 对所有推送的视图控制器都一样
你如何保持导航项目标题视图相同的所有推视图控制器?
例如,我想将标题视图设置为应该在所有屏幕上都可见的徽标。
UIImage *logoImage = [UIImage imageNamed:@"navigation-bar-logo"]; UIImageView *titleLogo = [[UIImageView alloc] initWithImage:logoImage]; self.navigationItem.titleView = titleLogo;
如果我为每个视图控制器单独设置它,iOS7导航栏animation看起来很奇怪。
如果您要显示导航项目标题视图 – 对于所有推送的视图控制器都是相同的
- 将ViewController设置为ParentViewController,将所有其他ViewController设置为子ViewController。然后,您将在ParentVC中执行什么devise,它将体现在Child VC中。
下面是例子。 在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
一种方法是使用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与自定义图像。
我build议你的另一种方法是不使用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;
希望这个信息会帮助你。 干杯:)