UITableView初始化后,首先调用数据源方法设置section个数和 cell个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
} // 表视图当中存在secion的个数,默认是1个
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
{
return [_listArray count]; // 2 rows
} // section 中包含row的数量
然后调用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法设置cell样式,indexpath去定位每一个cell,每个cell都会调用此函数初始化cell。随后出现UITableView界面
代理方法的设置主要处理点击Cell时需要处理的事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailViewController *detailVC = [[DetailViewController alloc] init];
detailVC.isBaseCell = indexPath.row ? NO : YES;
[self.navigationController pushViewController:detailVC animated:YES];
[detailVC release];
} // 当用户选择某一行时
其中,代码:
[self.navigationController pushViewController:detailVC animated:YES];
self指向 UIViewController,没有navidationController对象,查阅官方文档发现:
The nearest ancestor in the view controller hierarchy that is a navigation controller. (read-only). If the receiver or one of its ancestors is a child of a navigation controller, this property contains the owning navigation controller. This property is nil if the view controller is not embedded inside a navigation controller.
The nearest ancestor in the view controller hierarchy that is a navigation controller.
对这个还是不了解。。。
UINavigationController、UINavigationBar、UIViewController与UINavigationItem之间的关系
UIViewController's navigationController property