我正在创建一个基于UINavigationController的应用程序。在第一个视图中,我有一个UITableViewController。
我想拥有与联系人应用程序相同的行为。 1)用户选择联系人 2)系统显示联系方式 3)用户选择退回按钮 4)系统返回到tableview,并淡出单元格
如果我创建一个UIViewController和一个带有UITableView的xib,我只能这样做。 然后添加以下代码:
- (void)viewDidAppear:(BOOL)animated{
if ([self.mytableView indexPathForSelectedRow] != nil){
[self.mytableView deselectRowAtIndexPath:[self.mytableView indexPathForSelectedRow] animated:YES];
}
}
我真的不想为此只拥有一个xib。那么可以用UITableViewController做到吗?
答案 0 :(得分:1)
是。 UITableViewController
是UIViewController
的子类,因此您可以根据需要覆盖viewDidAppear:animated
方法。
如果要以编程方式创建UITableViewControl
(即不从笔尖加载),则必须手动配置UITableView
。请参阅UITableViewController
class reference中的以下内容:
- 如果通过
initWithNibName:bundle:
方法(由超类UIViewController
声明)指定了nib文件,UITableViewController
将加载在nib文件中存档的表视图。否则,它会创建一个具有正确尺寸和自动调整大小掩码的未配置UITableView
对象。您可以通过tableView
属性访问此视图。- 如果加载了包含表视图的nib文件,则数据源和委托将成为nib文件中定义的那些对象(如果有)。如果未指定nib文件或nib文件未定义任何数据源或委托,
UITableViewController
会将数据源和表视图的委托设置为self
。