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