`
feipigwang
  • 浏览: 746858 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

UITableViewController的行为与UIViewController不同

 
阅读更多

UITableViewController继承自UIViewController,但是initWithNibName:bundle:方法的行为是不一样的。普通的UIViewController如果nibName参数是nil,则自动载入和自己类名相同的xib文件。而UITableViewController遇到nibName为nil时,却不加载xib文件,而是创建一个空的table view。所以,对于UITableViewController来说,如果使用了xib文件,则必须写出完整xib文件名,才能正确创建。

因此,当使用了xib时,UITableViewController不能使用这样的方式创建:

[[TableViewController alloc] init];
[[TableViewController alloc] initWithNibName:nil bundle:nil];

另外,UITableViewController的view属性和tableView属性是联动的,无法自己改变此种关联。就是说,UITableViewController的顶级view必须是一个tableView,没法自己在loadView中创建一个view,然后再加入一个tableView。所以,如果想自己控制页面的布局,必须继承自UIViewController,而不是UITableViewController。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics