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

作者: LYPC_下里巴人 | 来源:发表于2017-08-11 11:47 被阅读118次

    根据目前做过的这些项目总结一下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];

    }

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

    相关文章

      网友评论

      本文标题:初始化项目搭建主流app框架

      本文链接:https://www.haomeiwen.com/subject/ngelrxtx.html