iOS开发UI篇—直接使用UITableView Controller

一、一般过程

 //
// YYViewController.h
// UITableView Controller
//
// Created by 孔医己 on 14-6-2.
// Copyright (c) 2014年 itcast. All rights reserved.
// #import <UIKit/UIKit.h> @interface YYViewController : UIViewController @end

系统storyboard中默认的控制器为:ViewController

这样的话如果整个程序界面都只是使用UITableView来搭建,那么一般需要完成以下相对繁琐的步骤:

(1)向界面上拖一个UItableview

(2)设置数据源

(3)设置代理

(4)遵守代理协议

 上述过程相对繁琐,且还需要手动的设置数据源,代理,遵守协议等,容易遗漏,下面推荐直接使用UITableView Controller。
 
二、使用UITableView Controller
  为了简化操作,推出下面的方法。
  即如果在界面上仅仅只是需要用来展示一个UITableView,那么可以让主控制器直接继承于UITableView Controller
 //
// YYViewController.h
// UITableView Controller
//
// Created by 孔医己 on 14-6-2.
// Copyright (c) 2014年 itcast. All rights reserved.
// #import <UIKit/UIKit.h> @interface YYViewController : UITableViewController @end
 
 直接让控制器继承UITableView controller,然后在storyboard中把以前的界面删掉,拖一个tableview controller就可以了。
 
注意:需要和主控制器类进行关联。
UITableView Controller里面有个tableview属性,在控制器中通过self.view获取出来的视图就是一个tableview。
即self.view=self.taleview。
且它默认已经把他的协议和数据源都已经实现好了,不再需要进行连线。
 //  UITableViewController.h
// UIKit
//
// Copyright (c) 2008-2013, Apple Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIViewController.h>
#import <UIKit/UITableView.h>
#import <UIKit/UIKitDefines.h> // Creates a table view with the correct dimensions and autoresizing, setting the datasource and delegate to self.
// In -viewWillAppear:, it reloads the table's data if it's empty. Otherwise, it deselects all rows (with or without animation) if clearsSelectionOnViewWillAppear is YES.
// In -viewDidAppear:, it flashes the table's scroll indicators.
// Implements -setEditing:animated: to toggle the editing state of the table. NS_CLASS_AVAILABLE_IOS(2_0) @interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> - (id)initWithStyle:(UITableViewStyle)style; @property(nonatomic,retain) UITableView *tableView;
@property(nonatomic) BOOL clearsSelectionOnViewWillAppear NS_AVAILABLE_IOS(3_2); // defaults to YES. If YES, any selection is cleared in viewWillAppear: @property (nonatomic,retain) UIRefreshControl *refreshControl NS_AVAILABLE_IOS(6_0); @end
点击右键,可以发现数据源和代理都已经连好了。
 
(应该把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线。)

iOS开发UI篇—直接使用UITableView Controller的更多相关文章

  1. iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建

    iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建 一.实现效果 说明:该示例在storyboard中使用动态单元格来完成. 二.实现 1.项目文件结构 ...

  2. iOS开发UI篇—UITableview控件简单介绍

    iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...

  3. iOS开发UI篇—UITableview控件基本使用

    iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> ...

  4. iOS开发UI篇—实现UItableview控件数据刷新

    iOS开发UI篇—实现UItableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运 ...

  5. iOS开发UI篇—UITableview控件使用小结

    iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...

  6. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  7. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  8. iOS开发UI篇—UITableviewcell的性能优化和缓存机制

    iOS开发UI篇—UITableviewcell的性能问题 一.UITableviewcell的一些介绍 UITableView的每一行都是一个UITableViewCell,通过dataSource ...

  9. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

    iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: // // YYcar ...

随机推荐

  1. Scrum 项目1.0

     1.内容: NABCD模型  1.需求   在当今的时代,把钱存进银行确实是比较稳妥的方式,但收益实在少得可怜.因此投资便是一个比较好的方式,当然,在投资前你需要一个软件去帮你直观地显现出各种投资的 ...

  2. HAL驱动库学习-SPI

    如何使用SPI库1 声明SPI hanlde, 例如: SPI_HandleTypeDef hspi2 通过实现HAL_SPI_MspInit()函数初始化底层资源 以下两个必须进行初始化 a 使能s ...

  3. Main.C时钟设定

    void Main(void) 时钟设定:400M 100M  50M    得到  1:4:8  进而需要得到 hdivn=2 : pdivn=1: i = 2 ;    //用于选择CUP核的频率 ...

  4. Mac 使用笔记

    说来惭愧,入手Mac已经快大半年了,但使用上一直是菜鸟. 下面是最近学习和用到的技巧,纪录如下,以后会不定期更新. 开启多个Terminal,这个简直是调程序必备. Command+N 打开新的Ter ...

  5. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

    问题分析:错误提示中的“ordinal not in range(128)”,意思是,字符不在128范围内,即说明不是普通的ASCII字符,超出处理能力了. import sys print u'系统 ...

  6. Make div 100% height of browser window/设置div等于浏览器的高度

    Viewport-Percentage (or Viewport-Relative) Lengths Viewport-Percentage Lengths: The viewport-percent ...

  7. C# XmlSerializer实现序列化浅析

    C# XmlSerializer类是实现序列化的一个类,那么关于C# XmlSerializer的学习我们要掌握怎么样的操作方法呢?那么这里向你详细介绍具体的操作细节情况. C# XmlSeriali ...

  8. JAVA基础知识之JDBC——使用ResultSetMetaData分析结果集

    通过ResultSetMetaData可以对ResultSet进行分析,获取ResultSet里包含了哪些数据列,以及每个列的数据类型. ResultSet中包含了一个getMetaData()方法, ...

  9. LA 3713 宇航员分组

    题目链接:http://vjudge.net/contest/142615#problem/B 题意:有A,B,C三个人物要分配个N个宇航员,每个宇航员恰好要分配一个任务,设平均年龄为X,只有年龄大于 ...

  10. python matplotlib 中文显示参数设置

    python matplotlib 中文显示参数设置 方法一:每次编写代码时进行参数设置 #coding:utf-8import matplotlib.pyplot as pltplt.rcParam ...