第1篇 Objective-C语法篇 3
第1章 iOS开发环境的搭建 3
1.1 硬件环境 4
1.2 软件环境 4
1.2.1 注册Apple ID 4
1.2.2 XCode下载与安装 5
1.2.3 iOS开发语言:Objective-C 6
1.3 分享一个小故事 7
1.4 总结与启发 8
第2章 Objective-C编程语言特性 9
2.1 Objective-C有什么奇特的地方 10
2.2 如何声明实例变量(浅谈@property的使用) 12
2.3 NSString的应用 14
2.4 如何判断两个字符串是否相等 14
2.5 对象类型与基本数据类型的混合使用 16
2.6 对象类型与基本数据类型的转换(NSNumber与NSInteger) 17
2.7 不可变数组(NSArray)与可变数组(NSMutableArray) 19
2.7.1 不可变数组(NSArray)的特征 19
2.7.2 可变数组(NSMutableArray)的特征 20
2.7.3 如何遍历数组中的对象 21
2.8 不可变字典(NSDictionary)与可变字典(NSMutableDictionary)的应用 23
2.8.1 不可变字典(NSDictionary) 23
2.8.2 可变字典(NSMutableDictionary) 24
2.8.3 如何遍历字典中的对象 25
2.9 一种最简单的永久数据存储方式(NSUserDefaults的应用) 26
2.10 创建类的对象的两种方法 28
2.11 一种最简单的调试方法(NSLog的使用) 29
2.12 忍不住也来说说iOS的设计模式(MVC的使用) 29
2.13 总结与启发 31
第2篇 Storyboard技术篇 35
第3章 iOS常用开发控件 35
3.1 XIB App与Storyboard App之争 36
3.2 Storyboard开发环境 36
3.3 创建一个新的工程 37
3.4 熟悉XCode开发环境 39
3.5 运行HelloWorld 40
3.6 按钮(UIButton)与标签(UILabel) 41
3.6.1 创建UIButton的IBAction 42
3.6.2 创建UILabel的IBOutlet 44
3.6.3 实现Button被触发后的方法 45
3.7 如何删除对象的IBOutlet或IBAction 45
3.8 让键盘消失的四种方法 46
3.8.1 键盘消失方法一:Delegate应用三步法 48
3.8.2 键盘消失方法二:事件响应的调用 51
3.8.3 键盘消失方法三:将UIView改为UIControl 53
3.8.4 键盘消失方法四:巧用UIButton 55
3.9 UITextField更多用法 56
3.10 getter与setter的应用场景 57
3.11 总结与启发 59
第4章 视图(UIView)与视图控制器(UIViewController) 61
4.1 如何创建一个基本的视图 62
4.2 透过UIAlterView看Delegate的应用 64
4.3 视图与视图控制器的生命周期 67
4.4 滚动视图(UIScrollView)的应用 69
4.5 总结与启发 71
第5章 Storyboard知多少 73
5.1 Storyboard编辑页面 76
5.2 Storyboard利器:Segue(连线) 77
5.3 创建和触发Segue的两种方法 78
5.4 Segue对象的属性设置 81
5.5 触发Segue的两种方法 82
5.6 Segue触发瞬间都要做些什么 83
5.7 巧用Segue 84
5.8 Segue的创建 86
5.9 嵌入Navigation Controller 87
5.10 活用prepareForSegue:sender: 90
5.11 重写对象的setter和getter 93
5.12 UIScrollView应用三步法 98
5.13 如何实现图片的缩放 100
5.14 通过异步加载获取网络图片 102
5.15 如何实现一个等待提示 104
5.16 总结与启发 107
第3篇 Delegate应用篇 111
第6章 Storyboard场景跳转方法 111
6.1 场景之间的正向跳转 112
6.1.1 直接跳转法(控件直接拖拽) 112
6.1.2 条件跳转法(performSegueWithIdentifier) 113
6.1.3 手动代码跳转法 116
6.1.4 三种方法的比较 118
6.2 场景之间的逆向跳转 118
6.2.1 Unwind Segue连线法 119
6.2.2 关于Unwind Segue的更多用法 120
6.2.3 通过编码方式实现逆向跳转 121
6.3 总结与启发 121
第7章 Delegate应用五步曲 123
7.1 学习Delegate的困惑 124
7.2 从一道经典的面试题说起 124
7.3 学习Delegate常出现的几个误区 125
7.4 Delegate技术难点在哪里 126
7.5 数据逆向传送一定要通过Delegate吗 127
7.6 Delegate应用五步曲 128
7.7 总结与启发 133
第4篇 表视图(TableView)应用篇 137
第8章 创建一个简单的表视图 137
8.1 表视图与表视图单元格(TableView与TableViewCell) 138
8.2 UITableView的代理机制(Data Source和Delegate) 139
8.2.1 UITableViewDataSource的应用 140
8.2.2 UITableViewDelegate的应用 142
8.3 创建一个表视图工程 143
8.4 视图控制器添加三步法 144
8.5 为表视图填充数据 147
8.6 如何确定列表的行数 148
8.7 如何显示列表每一行对应的内容 149
8.8 如何在表视图中添加缩略图 152
8.9 总结与启发 155
第9章 如何实现表视图的定制化单元格 157
9.1 如何让每一行显示特定的缩略图 158
9.2 如何定制化单元格(UITableViewCell) 161
9.3 为定制化单元格创建一个类 166
9.4 总结与启发 169
第10章 如何判断TableView选择了哪一行 171
10.1 如何理解UITableViewDelegate 172
10.2 UITableViewDelegate知多少 173
10.3 当某行被选中时,弹出一个提示框 173
10.4 如何获取行的内容 175
10.5 如何对被选中的行做标记 177
10.6 总结与启发 179
第11章 如何管理表视图的数据 181
11.1 如何让数据更便于维护 182
11.2 如何理解Property List 183
11.3 将表数据存储为Property List格式 184
11.4 如何读取Property List文件的内容 186
11.5 如何从UITableView中删除一行 187
11.6 如何重载表视图的数据 192
11.7 如何永久性删除表视图的行数据 193
11.8 如何实现TableView的上拉或下拉刷新 196
11.9 基于UIViewController创建表视图 198
11.10 关于UITableViewCell重用的理解与应用 202
11.11 总结与启发 203
后记 关于iOS下一代编程语言——Swift 207