通过更改plist文件,跳转同一个控制器类型的不同对象

#情景:
当一个app有很多的界面跳转,就需要创建很多的控制器,然而如果跳转到的控制器在样式上是差不多的,比如很多个需要跳转的界面都是UITableViewController类型的,如果每次跳转都创建一个不同的类,那么每一个类都需要些实现数据源方法,代理方法,以及创建模型,这样工作量是相当大的.

当有很多重复的东西的时候,抽取重复内容,将不同内容作为参数(数据)传递就很有必要了.

如果多个界面都是UITableViewController实现的,我们可以考虑通过提供不同的plist文件实现界面的搭建.

tableView界面可能的样式

>没分组

>分组

1.没有headerView/footerView

2.有headerView或者footerView

分组情况下有headerView,footerView可以囊括所有的样式,因为可以考虑创建多个plist文件,plist结构如下

  • NSArray
    • NSDictionary(外层)
      • header(NSString)
      • footer(NSString)
      • cells(NSArray)
        • NSDictionary(内层)
          • textLabel
          • detailTextLabel
          • imageView
          • ...........

外层字典决定每组的样式

内层字典决定行的样式

因为tableView的数据总是通过plist文件加载,于是可以通过给定不同plist文件,指定一个tableViewController样式,就可以轻松的实现很多个相似界面的跳转.

例子:网易彩票

代码:

 

posted @ 2016-03-07 21:35  Matrix_Neo  阅读(196)  评论(1编辑  收藏  举报