Third Chapter
創(chuàng)建程序的主架構(gòu)
由于每次跳轉(zhuǎn)返回的頁(yè)面不同,如果不進(jìn)行統(tǒng)一處理,有時(shí)候當(dāng)前一頁(yè)的控制器標(biāo)題過(guò)長(zhǎng)跳轉(zhuǎn)到別的頁(yè)面返回會(huì)顯示過(guò)長(zhǎng),這給用戶不好的視覺(jué)感受,所有一般對(duì)跳轉(zhuǎn)頁(yè)面進(jìn)行統(tǒng)一處理,如果有特殊情況,可以讓導(dǎo)航控制器自身來(lái)處理.
統(tǒng)一設(shè)置可以通過(guò)自定義navigationcontroller,在push之前,進(jìn)行操作.由于push是把控制器壓到棧中,這樣我們可以通過(guò)子控制器的個(gè)數(shù)來(lái)統(tǒng)一設(shè)置跳轉(zhuǎn)返回的樣式設(shè)置
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
// 如果不是第一個(gè)push進(jìn)來(lái)的子控制器,需要設(shè)置返回鍵
if (self.childViewControllers.count > 0 ){
//要想一個(gè)控件顯示注意要有尺寸,視情況而定還有顏色
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[backBtn setTitle:@"返回" forState:UIControlStateNormal];
[backBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[backBtn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[backBtn setImage:[UIImage imageNamed:@"navigationButtonReturn"] forState:UIControlStateNormal];
[backBtn setImage:[UIImage imageNamed:@"navigationButtonReturnClick"] forState:UIControlStateHighlighted];
[backBtn sizeToFit];
backBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -15, 0, 0);
[backBtn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
//push進(jìn)來(lái)的子控制器隱藏底部tabbar
viewController.hidesBottomBarWhenPushed = YES;
}
//最好把這push放在這
[super pushViewController:viewController animated:animated];
}
- (void)back{
[self popViewControllerAnimated:YES];
}