创建程序的主架构

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];
}


你可能感兴趣的:(创建程序的主架构)