UINavigationController 自定义navigationBar
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 //隐藏状态栏 4 UIApplication *myApp = [UIApplication sharedApplication] ; 5 [myApp setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 6 [myApp release]; 7 8 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 9 // Override point for customization after application launch. 10 self.navigationController = [[UINavigationController alloc] init]; 11 ListMagazineViewController *rootViewController = [[ListMagazineViewController alloc] init]; 12 [self.navigationController pushViewController:rootViewController animated:YES]; 13 [self.window addSubview:self.navigationController.view]; 14 [self.window makeKeyAndVisible]; 15 [rootViewController release]; 16 return YES; 17 }
隐藏 导航栏:
self.navigationController.navigationBarHidden = YES;
自定义 navigationBar
navigationBar = self.navigationController.navigationBar; #define kSCNavBarImageTag 10 if([navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){ //if ios5.0 and later [navigationBar setBackgroundImage:[UIImage imageNamed:@"navbarbg"] forBarMetrics:UIBarMetricsDefault]; }else { UIImageView *imageView = (UIImageView *)[navigationBar viewWithTag:kSCNavBarImageTag]; if(imageView == nil){ imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"navbarbg"]]; [imageView setTag:kSCNavBarImageTag]; [navigationBar insertSubview:imageView atIndex:0]; [imageView release]; } }
导航栏置顶于viewcontroller之上,不挤压viewcontroller属性设置:
[self.navigationController.navigationBarsetTranslucent:YES];
跳转新页面:
[self.navigationControllerpushViewController:imagePageViewController animated:YES];
返回上一个页面:
[self.navigationControllerpopViewControllerAnimated:YES];