Cocoa Touch中的大多数类都列出了一个“指定的初始值设定项”,您应该从
init
方法的子类。当您创建自己的自定义类时,最好检查文档以找到为您的超类指定的初始值设定项。当您使用更一般的超类中的其他初始值设定项初始化类时(通过调用-
[NSObject init]
initWithNibName:bundle:
. 如果用nil nibName调用此方法,它将查找与类名匹配的nib。行为
-init
未记录
UIViewController
[self initWithNibName:nil bundle:nil]
,但打电话会更安全
initWithNibName:包:
直接而不是依靠这种无证行为。
UITableViewController只定义一个初始值设定项,
-initWithStyle:
(尽管它没有将此方法指定为指定的初始值设定项)。此方法在不使用nib的情况下初始化UITableViewController,这通常很好。由于您不向UITableView添加子视图,因此通过nib配置UITableViewController通常不会获得太多好处。
-初始样式:
initWithNibName:包:
方法。以下是文档告诉我们在每种情况下如何初始化UITableView及其控制器的内容:
-
initWithNibName:包:
方法(由超类UIViewController声明),UITableViewController加载nib文件中存档的表视图。否则,它将创建具有正确尺寸和自动调整大小掩码的未配置UITableView对象。您可以通过tableView属性访问此视图。
-
如果加载了包含表视图的nib文件,则数据源和委托将成为nib文件中定义的对象(如果有)。如果未指定nib文件或nib文件未定义数据源或委托,UITableViewController会将表视图的数据源和委托设置为self。