iOS高级控件之tableViewController-城市列表

2023-05-16

今天我们要做的是一个城市信息的展示,先给大家看看是怎样的一个效果,我想应该是绝对的实用^_^
这里写图片描述

好了,接下来我就简要的给大家讲讲步骤,因为技术博客写的真心不多,也不知道该怎样讲才能把每一个人都看懂,但是宝宝我本着写有态度的博客,尽量的将细节描述详尽,不对的地方,望指正。

哈哈 虽然感觉并没有多少人看,我想我应该是自己的忠实的粉丝^_^好了不说废话了,进入正题

首先,建立一个新的工程,然后将storyboard中的viewController删除,同时将左侧viewController.h和.m一并删除,因为这是一个专有控件的demo,所以避免出现一系列繁杂的代码^_^

同时新建oc的类MainTableViewController,记住要继承至UITableViewController,同时再新建一个CitiesTableViewController用于存储显示城市的信息。

再storyboard中将Table View Controller拖进项目,并将Table View Controller的class设置成为MainTableViewController,这样这个类和这个Table view controller就相关联了。接着记得把这个选上,这就是手机在运行时,第一个显示的画面,相当于初始化,否则就是黑屏的。
这里写图片描述
同时将之前对provinces和cities的plist全部都拉进项目,这里就不赘述了。

定义一下,同时在初始化数据,这些都是老套路

//省份数组
@property (strong,nonatomic)NSArray *provinces;
//城市字典
@property (strong,nonatomic)NSDictionary *cities;
- (void)viewDidLoad {
[super viewDidLoad];    
//初始化数据
NSBundle *bundle = [NSBundle mainBundle];
self.provinces = [NSArray arrayWithContentsOfFile:[bundle pathForResource:@"provinces" ofType:@"plist"]];
self.cities = [NSDictionary dictionaryWithContentsOfFile:[bundle pathForResource:@"cities" ofType:@"plist"]];

}

接着就是设置数据源

#pragma mark 指定section分组的数据行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    return self.provinces.count;
}

然后我们要设置cell中显示什么内容

#pragma mark 指定表格显示内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

 static NSString *CellIdentifier = @"myCell";
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

// 如果没有在缓存池找到单元格,实例化一个新的单元格
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
[cell.textLabel setText:self.provinces[indexPath.row]];

return cell;
}

然后我们要知道,当我们点击了哪一行,然后通过这个信息在城市字典中将省份的数组取出,这里要做连线准备,同时我们要在storyboard中新建一个tableviewcontroller,并把class和citiestableviewcontroller关联起来。

这里写图片描述

对了,这个setCities方法是要在citiestableviewcontroller中定义,宝宝这边就不重复说了,所以大家懂的。记得import头文件

接着我们来写citiestableviewcontroller.m,其实很简单,把其他没用的都删除,我们只要2个效果,一个是返回多少行,另一个是在返回的这些行里面显示什么内容。代码几乎是和之前一样一样的。

//返回的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.cities.count;
}

这里写图片描述
大家肯定对上面的@”myCity”和之前的@”myCell”产生疑惑,这是哪来的,这其实也是一个细节,我们打开storyboard,在tableviewcontroller下面有一个table view,再下面有一个cell,这里将cell标记一个标签的作用,也就相当于起名字一样的道理。

仅仅这样肯定是不行的,这样会遇到一个很尴尬的场面,那就是点击进入了某个省,结果无法返回了,哈哈

这时候就需要另一个控件,Navigation Controller,将其拖入storyboard中,并将与之伴随多viewcontroller删除,在属性中将启动项 Is initial view controller打勾,这时原来在省份tableviewcontroller前面的肩头就跑到了Navigation Controller
这里写图片描述
同时将Navigation Controller与MaintableviewController连接起来,这里就不赘述了,给大家个提示大家自己去完成吧 很简单,只要是root view controller,同时省份与城市之间的连接,选择Accessory action事件下面的push,这样在城市列表中仍然会出现
Navigation Controller

这里写图片描述

其他的一些美化和命名的操作就不再介绍,相信这个demo一定能够在学习之路上对您有所帮助^_^

写有态度的博客,做有情怀的人!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS高级控件之tableViewController-城市列表 的相关文章

  • linux下安装Rstudio server,浏览器远程访问R

    翻译内容源自 xff1a http www rstudio com products rstudio download server linux版本要求 ubuntu10 04 43 Debian6 43 注 xff1a 这里只是针对ubu
  • vue中 computed和watch的一些简单理解(区别)

    今天看到一个问题 xff0c 就是 vue 的 computed 和 watch 要在哪些场景下使用 xff0c 其实也就是在问他们的区别 computed 也就是计算属性 xff0c 它可以帮助我们将在模板中的一些稍微复杂的逻辑计算放回到
  • CentOS安装NodeBB

    更新环境 yum y update yum y install epel release 安装基础软件 yum y groupinstall Development Tools yum y install git redis ImageMa
  • 针对并发流程,出现数据插入重复的情况做以下优化 postgresql

    背景介绍 xff1a 业务场景 xff1a 服务持续接收巡视任务的状态报文 xff0c 解析报文后入库 业务处理逻辑 xff1a 先根据报文中的唯一主键task patrolled id删除remove数据库中的表数据 xff0c 然后再a
  • Kali打包APK报错,Using Apktool 2.x.x-dirty org/apache/commons/text/StringEscapeUtils

    Kali xff08 2021 4a 2022 03 xff09 的apktools工具有问题 先卸载 xff1a apt get purge remove apktool 重新安装 xff1a 下载 Linux版wrapper scrip
  • I2C时钟延展

    转载自http blog sina com cn s blog 15fd81ac70102wvgw html xff0c 本文仅作为笔记备份 什么是I2C时钟延展 xff08 SCL Stretching xff09 xff1f 在I2C的
  • 树莓派 设置wifi 优先于有线网口

    亲测了好使 我的dhcpcd conf是这样的 成功之后是这样的 wlan0在上面 pi 64 raspberrypi ip route show default via 192 168 77 1 dev wlan0 src 192 168
  • nginx配置之调试配置

    用于调试和定位的问题的配置项 是否以守护进程方式运行Nginx 语法 xff1a daemon on off 默认 xff1a daemon on 作用 xff1a 守护进程是可以脱离终端并且在后台运行的进程 他脱离是为了避免进程执行过程中
  • python之while语句详解

    python之while语句详解 1 基本介绍2 while语句练习2 1 求100以内所有奇数或偶数之和2 2 求100以内9的倍数之和 xff0c 以及个数2 3 输出九九乘法表2 4 猜数字2 5 循环嵌套 1 基本介绍 xff08
  • 使用栈判断回文

    一 背景 什么是回文 xff1f 比如abba abbba 1221等 xff0c 从前读和从后读都一样 xff0c 这就是回文 abab就不是回文 xff0c 因为从前读和从后读不一样 那么 xff0c 你能够写一个程序判断一个字符串是否
  • ant-design-vue 日期组件国际化

    在入口文件main js中 import moment from 39 moment 39 import 39 moment locale zh cn 39 moment locale 39 zh cn 39 其中moment函数可以将日期
  • linux 查看启动项

    查看启动项 chkconfig list chkconfig level x name on off z B chkconfig level 5 openvpn off 以上的命令可以查询系统可提供的服务 xff0c 如果希望开机时启动某一
  • 解决报错libssl.so.1.1: cannot open shared object file: No such file or directory

    解决报错libssl so 1 1 cannot open shared object file No such file or directory Linux运维 更新于 2020年8月25日 0 条评论 Centos7 默认提供的 op
  • nginx代理下django debug toolbar不显示

    nginx代理的django服务 xff0c 平时正常 xff0c 今天不显示 xff0c 不用nginx代理正常 xff0c 查了半天 xff0c 突然想起来上午把nginx代理的静态文件下的debug toolbar静态文件夹给删了 x
  • Hadoop中的HDFS文件下载到远程机

    使用Hadoop下载文件不落地直接到远程服务器 xff0c 使用到hadoop api和JSch 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题 xff0c 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的
  • cookie 存放地点

    什么是Cookie xff1f A cookie also known as an HTTP cookie web cookie or browser cookie is a small piece of data sent from a
  • boost使用之编译库及遇到的问题

    最近因为在学习网络编程相关的东西 xff0c 准备学习一下boost xff0c 毕竟原生的网络编程太麻烦 看了一下其实windows下想使用起来很简单 xff0c 就是下载库 xff0c 然后运行脚本 xff0c 然后运行exe库就出来
  • windows消息机制(MFC)

    消息分类与消息队列 Windows中 xff0c 消息使用统一的结构体 xff08 MSG xff09 来存放信息 xff0c 其中message表明消息的具体的类型 xff0c 而wParam xff0c lParam是其最灵活的两个变量
  • POSTGRESQL表、字段添加注释和查询注释

    postgresql的注释工具层面的支持并不友好 xff0c 因此可采用命令的形式来进行字段 表进行添加注释 同时 xff0c 也可以通过一条SQL语句来查询字段的注释和类型 首先我们来看添加注释 xff1a 表添加注释 comment o
  • Armbian bullseye 系统OMV 6.x安装分享

    OMV 5 x网上教程很多 6 x的官方有方法 xff0c 但是因为墙的原因 xff0c 要换源 对初学者来说并没有一份完全照抄的教程参考 经过一番摸索 总结了下OMV 6 x的安装过程如下 第一步当然是Armbian系统烧录 这步网上教程

随机推荐