iOS技术点iOS 新新手iOS UI

五分钟搭建App设置页面_纯代码 + 模型思想(OC)

2015-09-12  本文已影响9140人  Developer_Yancy

本节主题(Storyboard/模型思想搭建设置页面)


方式一(纯代码 + StoryBoard混合 开发)

Snip20150911_5.png Snip20150911_15.png
/**
 *  添加所有子控制器
 */
- (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.添加第3个控制器
    CYXThreeViewController *threeVC = [[CYXThreeViewController alloc]init];
    [self setUpOneChildViewController:threeVC image:[UIImage imageNamed:@"qw"] title:@"博文"];

    // 4.添加第4个控制器
    // 4.1 初始化并从Storyboard中加载控制器
    UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"CYXFourViewController" bundle:nil];
    
    // 4.2 关联storyBoard与CYXFourViewController
    CYXFourViewController *fourVC = [storyBoard instantiateInitialViewController];

    [self setUpOneChildViewController:fourVC image:[UIImage imageNamed:@"user"] title:@"设置"];
}

Snip20150912_18.png

方式二(纯代码 + 模型 开发)

Snip20150911_17.png
#import "CYXFourViewController.h"
#import "CYXSettingItem.h"
#import "CYXGroupItem.h"

@interface CYXFourViewController ()

@property (strong, nonatomic) NSMutableArray * groups;/**< 组数组 描述TableView有多少组 */

@end

@implementation CYXFourViewController
/** groups 数据懒加载*/
- (NSMutableArray *)groups
{
    if (!_groups) {
        _groups = [NSMutableArray array];
    }
    return _groups;
}


- (instancetype)init{

    // 设置tableView的分组样式为Group样式
    return [self initWithStyle:UITableViewStyleGrouped];
}

- (void)viewDidLoad {
    [super viewDidLoad];

    //添加第1组模型
    [self setGroup1];
    //添加第2组模型
    [self setGroup2];
    //添加第3组模型
    [self setGroup3];

}

- (void)setGroup1{
    // 创建组模型
    CYXGroupItem *group = [[CYXGroupItem alloc]init];
    // 创建行模型
    CYXSettingItem *item = [CYXSettingItem itemWithtitle:@"我的账号"];
    CYXSettingItem *item1 = [CYXSettingItem itemWithtitle:@"我的收藏"];

    // 保存行模型数组
    group.items = @[item,item1];
    // 把组模型保存到groups数组
    [self.groups addObject:group];
}

- (void)setGroup2{

    CYXGroupItem *group = [[CYXGroupItem alloc]init];

    CYXSettingItem *item = [CYXSettingItem itemWithtitle:@"我去好评"];
    CYXSettingItem *item1 = [CYXSettingItem itemWithtitle:@"我去吐槽"];

    group.items = @[item,item1];

    [self.groups addObject:group];
}

- (void)setGroup3{

    CYXGroupItem *group = [[CYXGroupItem alloc]init];

    CYXSettingItem *item = [CYXSettingItem itemWithtitle:@"关注我们"];
    CYXSettingItem *item1 = [CYXSettingItem itemWithtitle:@"关于我们"];

    group.items = @[item,item1];

    [self.groups addObject:group];
}

#pragma mark - TableView的数据源代理方法实现

/**
 *  返回有多少组的代理方法
 */
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return self.groups.count;
}
/**
 *  返回每组有多少行的代理方法
 */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    CYXGroupItem *group = self.groups[section];
    return group.items.count;
}

/**
 *  返回每一行Cell的代理方法
 */
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // 1 初始化Cell
    // 1.1 设置Cell的重用标识
    static NSString *ID = @"cell";
    // 1.2 去缓存池中取Cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    // 1.3 若取不到便创建一个带重用标识的Cell
    if (cell == nil) {
        cell  = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    // 设置Cell右边的小箭头
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    // 2 设置数据
    // 2.1 取出组模型
    CYXGroupItem *group = self.groups[indexPath.section];
    // 2.2 根据组模型取出行(Cell)模型
    CYXSettingItem *item = group.items[indexPath.row];
    // 2.3 根据行模型的数据赋值
    cell.textLabel.text = item.title;

    return cell;
}

@end

上一篇下一篇

猜你喜欢

热点阅读