创建程序的主架构
2015-12-25 本文已影响148人
iOS_Cqlee
Third Chapter
创建程序的主架构
-
由于每次跳转返回的页面不同,如果不进行统一处理,有时候当前一页的控制器标题过长跳转到别的页面返回会显示过长,这给用户不好的视觉感受,所有一般对跳转页面进行统一处理,如果有特殊情况,可以让导航控制器自身来处理.
-
统一设置可以通过自定义navigationcontroller,在push之前,进行操作.由于push是把控制器压到栈中,这样我们可以通过子控制器的个数来统一设置跳转返回的样式设置
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
// 如果不是第一个push进来的子控制器,需要设置返回键
if (self.childViewControllers.count > 0 ){
//要想一个控件显示注意要有尺寸,视情况而定还有颜色
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进来的子控制器隐藏底部tabbar
viewController.hidesBottomBarWhenPushed = YES;
}
//最好把这push放在这
[super pushViewController:viewController animated:animated];
}
- (void)back{
[self popViewControllerAnimated:YES];
}