application:didFinishLaunchingWithOptions:
1.在该方法中可以设置和初始化根视图控制器
2.该方法只会在应用启动后调用一次。之后如果从其他app切换回本应用,该方法不会被调用。如果关闭应用后台进程,重新打开会掉用该方法。
loadView
1.视图控制器通过覆盖UIViewController中的loadView方法,来创建视图层次结构。
viewDidLoad
1.检查视图是否被加载,该方法会在载入视图后立即被调用。视图加载完成后再切换标签,不会触发viewDidLoad方法。
2.凡是和view或view子视图有关的初始化代码,都应该在viewDidLoad方法中实现。
3.每个UIViewController对象都实现了viewDidLoad方法。
4.方法中必须调用父类的viewDidLoad
UIViewController与UITabBarController
1.视图控制器是UIViewController类或其子类的对象,每个视图控制器负责管理一个视图层次结构。
2.UITabBarController对象可以保存一组视图控制器,UITabBarController对象会在屏幕底部显示一个标签栏tab bar,标签栏上每一个标签项,对应一个视图控制器。单击某个标签项,UITabBarController对象就显示该标签项对应视图控制器的视图。
3.UITabBarController也有名为view的属性,view指向包含两个子视图,分别是标签栏和当前UIViewController对应的视图。
4.UITabBar的图片和文字是如何显示的呢,当UIViewController加入UITabBarController时,UIViewController的tabBarItem属性作为标签栏的图片和文字。
UITableView
1.微信主界面就是UITableView,UITableView中数据只有行的概念,没有列的概念,UITableView中每一行都是一个UITableViewCell。
UITableViewController
1.UITableViewController包含一个UITableView对象
2.UITableView对象要有dataSource,用来查询行数,表格等数据,要有delegate,用来对事件进行响应。UITableViewController能完成以上功能。
3.UITableView对象查询其dataSource,以获取要显示的内容,由于UITableViewController的UITableView的dataSource指向UITableViewController自身,因此就是查询UITableViewController对象自身。
4.UITableView要显示内容时,会向dataSource发送消息,其中两个方法是必须的,tableView:numberOfRowsInSection:和tableView:cellForRowAtIndexPath:,分别获取显示行数和各行所需视图。
5.tableView:numberOfRowsInSection,获取显示的行数;tableView:cellForRowAtIndexPath获取各行的视图。
6.UITableViewCell对象有三个属性,textLable、detailTextLabel和imageView。
7.重用UITableViewCell对象,cell被移出窗口后,此UITableViewCell对象就放入对象池,等待重用,如果要显示新的cell时,先查看对象池,如果有UITableViewCell对象,就重置其数据,并显示,从而避免再次创建对象。重用的UITableViewCell对象应该和要展示的UITableViewCell对象类型相同,才能重用,UITableViewCell的reuseIdentifier属性可以起到该作用。一般用UITableViewCell的类名作为其reuseIdentifier。
8.UITableViewCell对象包含三个属性,textLabel, detailTextLabel, imageView。
UINavigationController
1.UINavigationBar的文字,由UIViewController的navigationItem属性来设置(当UIViewController是UINavigationController的栈顶对象时)。
网友评论