• 我的大菠萝 – 5,TableView的数据绑定


    增加工具栏按钮

    我们首先修改TableView的页面,要增加几个按钮:增加基友、删除基友。我不知道在UI上如何做,因为貌似只能在右侧增加一个bar button item,无法增加多个。

    代码很简单。同样,在第二个的ViewController页面,也增加一个按钮:修改基友昵称。

    绑定TableView数据

    override相关方法

    我没有找到泛型列表类,如C#中的List<MyEntityClass>,所以我只能使用NSMutableArray来表达首页的基友列表。

    为了绑定TableView,我们需要override几个方法,这几个方法体都是Xcode默认生成的。

    我们只有一个section,所以要修改为return 1;同时把上面那个warning去掉。

    上面这个函数,是返回某个section的行数,因为我们只有一个section,只有Profiles这个数组,所以行数就取Profiles count即可。

    绑定的核心方法

    这个函数就是核心的绑定方法了。在自动生成好的方法内,configure the cell下面,我们需要增加一些内容

    首先为了提高绑定性能,需要reuse 这个cell。

    其次,开始绑定数据。大体格式是:图片作为底图,显示昵称,右侧显示一个5类英雄的play time。

    动态添加昵称

    动态添加每个class的time play

    设置每个cell的背景图片

    此时如果运行,发现并没有数据。因为我们还没有把相关的Profile数据进行赋值。

    我们可以在didLoad方法中,先放入一些数据。正规的方法,应该是通过首页的Add方法,增加一个Profile,然后保存到文件中。当重新打开应用时,从文件中读取该信息。

    最终的运行结果如下

    响应查找(增加)操作

    UI设计

    首先我们设计一个UI界面,用来增加基友。

    一个底图,几个label和textbox,最主要的是一个table view,为了选择区域。目前玻璃渣支持4个服,我们写死好了。

    为了数据绑定,我们需要对table view做一些操作。由于这是一个UIVewController,而不是一个TableViewController,所以我们需要扩展该类的接口类型。(注意尖括号之间的两个部分)

    同时,我们需要把UI控件分别生成outlet。

    对于table view,还需要设置datasource和delegate。这两个东西,需要在story board上选择table view,然后在connections inspector上找到outlet,在右侧的空心圆圈上,拖拽到story board上的view controller节点上。

    然后同第一页的profile绑定,我们增加数据源的处理。

    表格背景透明

    单元格背景透明

    单选表格样式的变化(类似于RadioButton)

    Profile的保存

    Trim的代码

    Append数据的操作

    思路是判断文件是否存在,不存在,直接调用writeToFile,否则,调用file handle->seekToEndOfFile操作。

    重新加载数据

    按照标示符号拆分字符串,componentsSeparatedByString方法

    重新触发table view的绑定事件

    对于numberOfSections/numberOfRows/cellForRowAtIndexPath等方法,在页面中只会执行一次(如果没有滚动的话)

    Add Profile之后,会强制加载,那么可以用

    传递Profile数据到页面2

    只要在第二个页面上定义Profile*变量,然后赋值即可。点击某个基友,导航到第二个页面的代码如下

  • 相关阅读:
    JS计算每个字符出现的次数
    FCL研究-目录
    FCL研究-LINQ-System.Linq Enumerable
    FCL研究-集合- System.Collections 接口和对象集合
    Vimperator常用快捷键
    【转】WCF光芒下的Web Service
    【转】GridView 加载空行并点击编辑每一个单元格
    [转]在C#程序设计中使用Win32类库
    OpenOffice实现Office转Pdf(支持自定义添加水印、页眉、页脚)
    VUE 动态路由
  • 原文地址:https://www.cnblogs.com/charju/p/3486309.html
Copyright © 2020-2023  润新知