iOS高阶UI相关iOS开发iOS 开发每天分享优质文章

初始化项目搭建主流app框架

2017-08-11  本文已影响118人  LYPC_下里巴人

根据目前做过的这些项目总结一下app的框架搭建,不能以偏概全,还是要根据项目负责人的构思和需求结合灵活搭建的。

我们其中一个代表性的项目结构是这样的,就针对这样子的app来总结一下架子搭建。

1、思想上,采用模块化+MVC思想;

2、代码上,采用纯代码搭建;

吐槽一下后来合作的新人 小鲜肉们,为何总喜欢用故事版做项目,个人感觉太不灵活了,代码不好控制,一切不在掌握之中,不推荐使用。

3、骨架结构:

tabBarController底部的切换条,

NavigationController顶部的导航条;

ViewController中间展示内容的各个页面;

4、整合关系:

tabBarController作为整个项目架子的控制者,每个子控制器是一个NavigationController,NavigationController的root View是ViewController。

5、目录:

不足之处 或者有更优方案的欢迎指正教导。

6、上代码:

AppDelegate里面写入口:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor = [UIColor whiteColor];

SCTabBarViewController *sCTabBarViewController = [[SCTabBarViewController alloc] init];

self.sCTabBarVC = sCTabBarViewController;

self.window.rootViewController = self.sCTabBarVC;

[self.window makeKeyAndVisible];

return YES;

}

新建SCTabBarViewController和CTBaseNavigationController,在里面写你们的自定义配置之类的代码:

主要代码:

- (void)viewDidLoad {

[super viewDidLoad];

// 添加子控制器

[self addChildVc:[[HomeTableViewController alloc] init] title:@"首页" image:@"home_normal" selectedImage:@"home_select"];

[self addChildVc:[[MainShoppingViewController alloc] init] title:@"商城"

image:@"shopping_normal" selectedImage:@"shopping_selected"];

[self addChildVc:[[DiscoverViewController alloc] init] title:@"发现"

image:@"FriendsTrend_normal" selectedImage:@"FriendsTrend_select"];

[self addChildVc:[[MyViewController alloc] init] title:@"我的" image:@"My_normal" selectedImage:@"My_select"];

}

/**

*  添加一个子控制器

*

*  @param childVc      子控制器

*  @param title        标题

*  @param image        默认的图片

*  @param selectedImage 选中的图片

*/

- (void)addChildVc:(UIViewController *)childVc title:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage {

// 设置文字和图片

childVc.navigationItem.title = title;

childVc.tabBarItem.title = title;

childVc.tabBarItem.image = [UIImage imageNamed:image];

childVc.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

// 包装一个导航控制器, 添加导航控制器为tabbarcontroller的子控制器

CTBaseNavigationController *nav = [[CTBaseNavigationController alloc] initWithRootViewController:childVc titleSize:18 titleColor:[UIColor colorWithRed:253.0/255 green:144.0/255 blue:15.0/255 alpha:1] leftBackBarNormalImage:@"navigationbar_back"highImage:@"navigationbar_back"];

// 添加为子控制器

[self addChildViewController:nav];

}

这个是随便写了一下,很小白,希望大牛来指导一下。我想问一嘴,做一个项目,到底有没有必要创建基类呢?

上一篇下一篇

猜你喜欢

热点阅读