firstViewController * firstVC = [[firstViewController alloc]init];
NViewController * RootController = [[NViewController alloc]initWithRootViewController:firstVC];RootViewController * RootController = [[RootViewController alloc]initWithRootViewController:firstVC];
[firstVC release];导航控制器指定为window的控制器.
self.window.rootViewController = RootController; [RootController release];导航控制器用来管理一组具有层级关系的视图控制器,进入下一个界面的方法是push. 返回是pop
(层级关系:后面的界面显示的内容依赖于前一个界面) 当没有,层级关系的视图控制器之间切换时(比如:前一个界面显示的内容依赖于后一个界面). 要使用模态视图.进入下一个界面的方式是present 返回是dismiss如果第二个界面需要导航控制器,则模态出导航控制器
当由前一个界面push到后一个界面时,比如A push 到 B
A(viewWillDisapper) -- > B (viewWillApper) --> A (viewDidDisapper) -->B(viewDidApper)
后一个界面pop回前一个界面时
B(viewWillDisapper) -- > A (viewWillApper) --> B (viewDidDisapper) -->A(viewDidApper)
和视图相关的四个方法
当视图控制器的view将要出现时触发
- (void)viewWillAppear:(BOOL)animated{ NSLog(@"%s",__FUNCTION__); [super viewWillAppear:YES];}当视图控制器的view已经出现时触发
- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:YES]; NSLog(@"%s",__FUNCTION__);}当视图控制器的view将要消失时触发
- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:YES]; NSLog(@"%s",__FUNCTION__);}当视图控制器的view已经消失时触发
- (void)viewDidDisappear:(BOOL)animated{ [super viewDidDisappear:YES]; NSLog(@"%s",__FUNCTION__);}
修改navigetionBar 的颜色
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
2.关闭navigationBar 的毛玻璃效果.
self.navigationController.navigationBar.translucent = noErr;
3.将navigationBar 隐藏掉
self.navigationController.navigationBarHidden = YES;
4.设置图片
不同尺寸的图片的效果不同 320 * 44 只会给navigationBer 附上图片 [self.navigationController.navigationBar setBackgroundImage:[UIImage p_w_picpathNamed:@"32044"] forBarMetrics:UIBarMetricsDefault]; 高度小于44 ,以及高度 大于 44 小于64 : 会平铺navigationBar以及状态条 [self.navigationController.navigationBar setBackgroundImage:[UIImage p_w_picpathNamed:@"32050"] forBarMetrics:UIBarMetricsDefault]; 高度等于64: 整个图片在navigation以及在状态条上显示 [self.navigationController.navigationBar setBackgroundImage:[UIImage p_w_picpathNamed:@"32064"] forBarMetrics:UIBarMetricsDefault]; 注意以上四点都是对navigationBar直接配置,所以该操作对每一个界面navigationBar上消失的内容都会有影响.(效果都是一样的) 为每一个界面的navigationBar上显示的内容单独定制(每一个界面内容不一样) 单独定制修改视图控制器的navigationItem 设置界面的title self.navigationItem.title = @"好友"; 修改title(中间显示的视图) UISegmentedControl *segmented = [[UISegmentedControl alloc]initWithItems:@[@"分组",@"全部"]]; self.navigationItem.titleView = segmented; [segmented release]; 配置navigationBar右边显示的内容 UIBarButtonItem * btn = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)]; self.navigationItem.rightBarButtonItem = btn; [btn release];