在UIViewController -> nibName属性的文档中,它说:
此属性包含初始化时指定给initWithNibName:bundle:方法的值。此属性的值可能为零。
如果使用nib文件存储视图控制器的视图,建议您在初始化视图控制器时明确指定该nib文件。但是,如果未指定nib名称,并且未覆盖自定义子类中的loadView方法,则视图控制器将使用其他方法搜索nib文件。具体来说,它会查找具有适当名称的
(不带.nib扩展名),并在请求其视图时加载该nib文件。具体来说,它(按顺序)查找具有以下名称之一的nib文件:
- 如果视图控制器类名以单词“Controller”结尾,就像在MyViewController中一样,它会查找名称与类名匹配的nib文件,而不是“Controller”,如MyView.nib中那样。
- 查找名称与视图控制器类名称匹配的nib文件。 例如,如果类名是MyViewController,则查找一个MyViewController.nib文件。
醇>
我的问题是,班级如何知道自己的文件名?
答案 0 :(得分:2)
我认为在框架中他们使用自己的API ...
NSString *string = NSStringFromClass([self class]);
所以他们可以获得类名......
在他们搜索viewController类文件的文档中,以“Controller”一词结束。