導航控制器常用函數觸發時機
當視圖控制器的View將要出現時觸發
- (void)viewWillAppear:(BOOL)animated
當視圖控制器的View已經出現時觸發
- (void)viewDidAppear:(BOOL)animated
當視圖控制器的View將要消失時觸發
- (void)viewWillDisappear:(BOOL)animated
當視圖控制器的View已經消失時觸發
- (void)viewDidDisappear:(BOOL)animated
當由前一個界面,push下一個界面時,如A push B,四個方法執行順序A(ViewWillDisappear)>B(viewWillAppear)>A(viewDidDisappear)>B(viewDidAppear)
當由後一個界面pop前一個界面時,如B pop A,四個方法執行順序B(viewWillDisappear)>A(viewWillAppear)>B(viewDidDisappear)>A(viewDidAppear)
navigationBar常用屬性
一. 對navigationBar直接配置,所以該操作對每一界面navigationBar上顯示的內容都會有影響(效果是一樣的)
1.修改navigationBar顏色
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
2.關閉navigationBar的毛玻璃效果
self.navigationController.navigationBar.translucent = NO;
3.將navigationBar隱藏掉
self.navigationController.navigationBarHidden = YES;
4.給navigationBar設置圖片
不同尺寸的圖片效果不同:
1.320 * 44,只會給navigationBar附上圖片
2.高度小於44,以及大於44且小於64:會平鋪navigationBar以及狀態條上顯示
3.高度等於64:整個圖片在navigationBar以及狀態條上顯示
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"32050"] forBarMetrics:UIBarMetricsDefault];
二.為每一個界面的navigationBar上顯示的內容單獨定制(每個界面顯示內容不一樣)
單獨定制,修改視圖控制器的navigationItem
1.設置界面的title
self.navigationItem.title = @"遠東大開發”;
2.修改titleView(中間顯示視圖)
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:@[@"分組", @"好友"]]; self.navigationItem.titleView = segment;[segment release];
3.修改navigationBar的顏色self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
4.修改navigationBar,右邊顯示內容
UIBarButtonItem *right = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)];
self.navigationItem.rightBarButtonItem = right;
[right release];
5.修改navigationBar,左側顯示內容
UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add:)];
self.navigationItem.leftBarButtonItem = left;
[left release];