代码改变世界

UI进阶之--网易彩票手写plist文件,动态创建控制器与tableViewcell

2016-03-03 09:10  菜鸟Alex  阅读(564)  评论(0编辑  收藏  举报

点击右上角设置按钮

  • 点击按钮后发生的事件:1. 控制器的跳转,进入新的控制器.view, 2. 跳转的时候对将要跳转的目标控制的子控件进行了布局.---通过手写plist文件的方式加载

  • 为按钮注册单击事件


#import "PBBMyLottory.h"
#import "PBBSettingViewController.h"

@interface PBBMyLottory ()

@property (weak, nonatomic) IBOutlet UIButton *loginButton;

@end


@implementation PBBMyLottory


- (IBAction)didClickSettingButton:(id)sender {
    //创建控制器  + 跳转到新的控制器
    PBBSettingViewController * setVc = [[PBBSettingViewController alloc] init];
    
    //设置右上角常见问题按钮
    UIBarButtonItem * rightItem = [[UIBarButtonItem alloc] initWithTitle:@"常见问题" style:UIBarButtonItemStylePlain target:self action:@selector(didClickChangJianButton)];;
    setVc.navigationItem.rightBarButtonItem = rightItem;
    //在PBBSettingViewController属性中声明一个plistname的属性用来存储手写plist文件名
    setVc.plistName = @"PBBMynblist.plist";
    [self.navigationController pushViewController:setVc animated:YES];
    
}
-(void)didClickChangJianButton{
    NSLog(@"常见问题i");
}


  • 点击设置按钮后需要跳入的界面

  • 跳转前需要进行手动设置tableview的样式
//设置tableView为分组的样式,重写构造init方法
-(instancetype)init{

    return [super initWithStyle:UITableViewStyleGrouped];
}

-(instancetype)initWithStyle:(UITableViewStyle)style{

    return [super initWithStyle:UITableViewStyleGrouped];
}

//设置返回按钮 格式 不同状态下的显示图片
-(void)viewDidLoad{

    [super viewDidLoad];
    
    UIBarButtonItem * backItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"NavBack"] style:UIBarButtonItemStylePlain target:self action:@selector(didClickBackButton)];
    
    self.navigationItem.rightBarButtonItem.title = @"常见问题";
    self.navigationItem.title = @"设置哦!";
    self.navigationItem.leftBarButtonItem = backItem;
    
}
//如果自定义了返回按钮,则返回按钮进入上一个控制器需要手动返回.
-(void)didClickBackButton{

    [self.navigationController popViewControllerAnimated:YES];
    
}


  • 此界面的控件全部由手动写plist文件创建

  • 首先有三组数据,每组分别有1个 4 个 4个 cell
  • 每组的组header 与footer 都为空,先写上以防以后添加内容.
  • plist文件整个是一个数组,下面的item是字典header与footer对应的内容,再下面是一个数组,数组里面存了每个cell的左边的icon头像,内容-title,以及右边的-accessory的style如图

  • 由于第一组的cell点击去设置的是普通的一个viewcontroller,则没有plist_name这一项如图

  • 然后plist_name这一项就可以为空,因为里面无需再跳转其他控制器,以及为跳转过后其他控制器里面内容控件等等 赋值

  • 点击推送和提醒需要跳转进入的控制器

  • 对应手写plist文件为

  • 这里target_vc要跳转的目标控制器如果跟设置界面的控制器类型一致,则用PBBSettingViewController这个类型的控制器---方便而已

  • 下面是跳转进入的控制器的plist文件的编写,由于点进去的界面还需要进行跳转则再写对应跳转过去的plist文件,再在plist_name中写上要跳转的plist文件名

总结:plist文件书写首先看要跳转的界面的类型,网易彩票的是tableView类型,然后看有几组数据,每组数据的header 与 footer是否为空,写上最好以防有用(对应的NSDictionary),每个cell对应的又是一个数组,因为每个cell中存的数据不仅仅是一个标题+文字,而是存储了标题+文字title+右侧accessory,则字典不能满足,要用数组NSArray来存储每个cell数据.如果选中cell进行跳转,跳转进入的界面是类似设置的界面----也就是每个cell点击的时候还需要跳转进入下一个界面,则需要分别对每个cell写对应plist文件.