[ 路丁前言 ] 构建流行架构页面 必须源代码的能够私聊我 达到实际效果
构建流行架构页面
- 必须源代码的能够私聊我
- 达到实际效果
- 设计效果图
- ps :必须源代码的能够进群,
前言
- 我们玩iPhone运用的情况下,有没有发觉绝大多数的运用全是图中类似的构造,下边的TabBar控制板能够转换子控制板,上边又有Navigation导航栏
- 大家文中主要是探讨行为主体架构的构建,数据信息暂时没有加上
剖析做新项目的基础步骤
- 1.构建新项目主架构
- (1)先构建tabBarController(下边有一条)
- (2)再构建NavigationController(上边有一条,而且每一个子控制板的不一样)
- 2.思索开发方法
- (1)storyboard构建(页面非常少的情况下应用)
- (2)纯编码构建(页面超出五个的情况下应用,便于管理方法,商业服务新项目中,一般都应用这类方法)
从0开始构建流行架构(纯编码)
1.准备工作
- 自然环境布署
Snip20150904_11.png
2.基本构建基础页面
- 第一步 设计方案文件目录(依据模块化设计 MVC观念,建立基础文件名称与文档)
- 模块化设计观念建立文件目录相对路径(一般先在真正相对路径下建立,再拖至新项目中)
- 自定TabBarController
Snip20150904_4.png
- 第二步 上编码(在AppDelegate.m内设定对话框起动根控制板)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 1.建立对话框 self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; // 2.设定对话框的根控制板 CYXTabBarController *tabBarVC = [[CYXTabBarController alloc]init]; self.window.rootViewController = tabBarVC; // 3.显示信息对话框 [self.window makeKeyAndVisible]; return YES;}
- 第三步,在CYXTabBarController.m内建立并加上子控制板
- (void)viewDidLoad { [super viewDidLoad]; // 1.加上第一个控制板 // 1.1 复位 CYXOneViewController *oneVC = [[CYXOneViewController alloc]init]; // 1.2 把oneVC加上为UINavigationController的根控制板 UINavigationController *nav1 = [[UINavigationController alloc]initWithRootViewController:oneVC]; // 设定tabBar的题目 nav1.title = @"主页"; [nav1.navigationBar setBackgroundImage:[UIImage imageNamed:@"commentary_num_bg"] forBarMetrics:UIBarMetricsDefault]; // 设定tabBar的标志 nav1.tabBarItem.image = [UIImage imageNamed:@"tab_home_icon"]; // 设定navigationBar的题目 oneVC.navigationItem.title = @"主页"; // 设定背景颜色(这种实际操作能够交到每一个独立子控制板去做) oneVC.view.backgroundColor = [UIColor whiteColor]; // 1.3 把UINavigationController交到UITabBarController管理方法 [self addChildViewController:nav1]; // 2.加上第2个控制板 CYXTwoViewController *twoVC = [[CYXTwoViewController alloc]init]; UINavigationController *nav2 = [[UINavigationController alloc]initWithRootViewController:twoVC]; nav2.title = @"技术性"; nav2.tabBarItem.image = [UIImage imageNamed:@"js"]; twoVC.navigationItem.title = @"技术性"; twoVC.view.backgroundColor = [UIColor blueColor]; [self addChildViewController:nav2]; // 3.加上第三个控制板 CYXThreeViewController *threeVC = [[CYXThreeViewController alloc]init]; UINavigationController *nav3 = [[UINavigationController alloc]initWithRootViewController:threeVC]; nav3.title = @"博闻"; nav3.tabBarItem.image = [UIImage imageNamed:@"qw"]; threeVC.navigationItem.title = @"博闻"; threeVC.view.backgroundColor = [UIColor yellowColor]; [self addChildViewController:nav3]; // 4.加上第四个控制板 CYXFourViewController *fourVC = [[CYXFourViewController alloc]init]; UINavigationController *nav4 = [[UINavigationController alloc]initWithRootViewController:fourVC]; nav4.title = @"我的江湖"; nav4.tabBarItem.image = [UIImage imageNamed:@"user"]; fourVC.navigationItem.title = @"我的江湖"; fourVC.view.backgroundColor = [UIColor grayColor]; [self addChildViewController:nav4];}
- 开展到这儿,大家早已把架构搭起来了,是否非常简单?实际效果如图所示:
Snip20150904_8.png
- 但你将会会禁不住调侃了,这种都是数据冗余的废弃物编码,沒有易读性,下边就来提取一下编码吧
- 第四步,提取反复编码
- 由
于上文的全部编码都写在viewDidLoad里边且反复编码过多,导致编码数据冗余,扩展性不太高的难题,下边使我们来对编码开展基本提升。 - 这儿获取2个方式 ,一个是加上全部子控制板的方式 ,另一个是加上每一个子控制板的方式
- (void)viewDidLoad { [super viewDidLoad]; [self setUpAllChildViewController];}/** * 加上全部子控制板方式 */- (void)setUpAllChildViewController{ // 1.加上第一个控制板 CYXOneViewController *oneVC = [[CYXOneViewController alloc]init]; [self setUpOneChildViewController:oneVC image:[UIImage imageNamed:@"tab_home_icon"] title:@"主页"]; // 2.加上第2个控制板 CYXTwoViewController *twoVC = [[CYXTwoViewController alloc]init]; [self setUpOneChildViewController:twoVC image:[UIImage imageNamed:@"js"] title:@"技术性"]; // 3.加上第三个控制板 CYXThreeViewController *threeVC = [[CYXThreeViewController alloc]init]; [self setUpOneChildViewController:threeVC image:[UIImage imageNamed:@"qw"] title:@"博闻"]; // 4.加上第四个控制板 CYXFourViewController *fourVC = [[CYXFourViewController alloc]init]; [self setUpOneChildViewController:fourVC image:[UIImage imageNamed:@"user"] title:@"我的江湖"];}/** * 加上一个子控制板的方式 */- (void)setUpOneChildViewController:(UIViewController *)viewController image:(UIImage *)image title:(NSString *)title{ UINavigationController *navC = [[UINavigationController alloc]initWithRootViewController:viewController]; navC.title = title; navC.tabBarItem.image = image; [navC.navigationBar setBackgroundImage:[UIImage imageNamed:@"commentary_num_bg"] forBarMetrics:UIBarMetricsDefault]; viewController.navigationItem.title = title; [self addChildViewController:navC];}
具备1-5工作经历的,应对现阶段时兴的技术性不知道如何下手,必须提升技术性短板的能够进群
在企业待久了,过得很舒适安逸,但换工作时招聘面试栽跟头。必须在短期内内学习、换工作拿高薪职位的能够进群。
要是没有工作经历,但基本十分扎扎实实,对java工作方案,常见设计方案观念,常见java开发框架把握娴熟的,能够进群。
感觉自身很牛B,一般要求都能拿下。可是所教的知识要点沒有专业化,难以在技术领域再次提升的能够进群。
群号码Java构架交流群
阿里巴巴Java高級大神直播间解读知识要点,共享专业知识,上边六大专题讲座全是诸位教师很多年工作经历的整理和小结,带著大伙儿全方位、科学研究地创建自身的技术性管理体系和技术性认知能力! 。
评论