点击右上角设置按钮

  • 点击按钮后发生的事件: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文件.

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

  1. JDK动态代理深入理解分析并手写简易JDK动态代理(下)

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-05/27.html 作者:夜月归途 出处:http://www.guitu ...

  2. JDK动态代理深入理解分析并手写简易JDK动态代理(上)

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-03/27.html 作者:夜月归途 出处:http://www.guitu ...

  3. 前端进阶之认识与手写compose方法

    目录 前言:为什么要学习这个方法 compose简介 compose的实现 最容易理解的实现方式 手写javascript中reduce方法 redux中compose的实现 参考文章 最后 前言:为 ...

  4. [iOS UI进阶 - 2.0] 彩票Demo v1.0

    A.需求 1.模仿“网易彩票”做出有5个导航页面和相应功能的Demo 2.v1.0 版本搭建基本框架   code source:https://github.com/hellovoidworld/H ...

  5. 手写PE文件(二)

    [文章标题]: 纯手工编写的PE可执行程序 [文章作者]: Kinney [作者邮箱]: mohen_ng@sina.cn [下载地址]: 自己搜索下载 [使用工具]: C32 [操作平台]: win ...

  6. iOS-读写plist文件

    读写plist文件 问题,我有一个plist文件,表示56个民族的,但是里面保存的字典,我想转换成一个数组 好的,那么就先遍历这个plist,然后将结果保存到一个数组中,这里出现的一个问题就是C语言字 ...

  7. [iOS UI进阶 - 2.3] 彩票Demo v1.3

    A.需求 真机调试 "关于”模块 存储开关状态 打电话.发短信 应用评分 打开其他应用 cell 在iOS6 和 iOS7的适配 block的循环引用 屏幕适配 code source:   ...

  8. [iOS UI进阶 - 2.4] 彩票Demo v1.4 转盘动画

    A.需求 幸运广场界面中有一个幸运转盘,平时能够自动缓缓转动 能够选择星座 点击“开始选号”开速旋转转盘,旋转一定周数 转盘转动速度节奏:开始-慢-块-慢-结束 设置其余的背景和按钮   code s ...

  9. [iOS UI进阶 - 2.2] 彩票Demo v1.2 UICollectionView基本

    A.需要掌握的 设计.实现设置界面 cell的封装 UICollectionView的使用 自定义UICollectionView 抽取控制器父类 "帮助"功能 code sour ...

随机推荐

  1. python 安装pip的时候出现UnicodeEncodeError错误

    另外 Python 中一个比较常见的问题是编码问题,若遇到类似"UnicodeEncodeError: 'ascii' codec can't encode character u'\u62 ...

  2. 不再以讹传讹,GET和POST的真正区别

    不再以讹传讹,GET和POST的真正区别 网上的多数答案都是错的 在 2012年05月03日 那天写的     已经有 19940 次阅读了 感谢 参考或原文 www.cnblogs.com   服务 ...

  3. selenium测试套件

    1.测试套件测试套件,简单理解就是讲多个用例,装在一个容器里来同时执行完成. 2.测试套件分析 #coding=utf-8 import unittestimport BaiDuSearch,BaiD ...

  4. javaWeb中struts开发——helloworld

    1.新建一个web项目 2.选中project,右键,选择MyElcipse,选择add  struts capab...添加struts支持,然后自己命名包 3.Struts在建立jsp时,标签要到 ...

  5. SET ? DECLARE

    http://dev.mysql.com/doc/refman/5.7/en/declare-local-variable.html http://dev.mysql.com/doc/refman/5 ...

  6. changing a pointer rather than erasing memory cells

    Computer Science An Overview _J. Glenn Brookshear _11th Edition In a data structure based on a point ...

  7. P2409 Y的积木

    luogu月赛 暴力dfs,估计过不了几个点,大概也就得30分左右? #include <bits/stdc++.h> using namespace std; const int max ...

  8. ava.lang.NullPointerException的一般解决方法

    抛出异常后,一般会输出异常信息,, 从上往下找 ,第一次出现与"自己的代码"有关的部分,就是异常抛出的最近点,异常就是在那里开始的 然后再顺藤摸瓜 找问题去吧

  9. Bluetooth HCI介绍

    目录 1. HCI功能 2. HCI Packet 1. HCI Command 2. HCI Event 3. HCI Data 3. HCI传输层 HCI, 主机控制接口(Host Control ...

  10. SHELL 八大扩展

    最近在梳理bash知识的的过程中,有幸阅读了man bash文档,一时间犹如醍醐灌顶一般,很多当初不明白的地方都豁然开朗,现在就其中的一点做一分享,同时也为man bash做一下广告,当你面对bash ...