UIViewController子类如何知道自己的文件名?

时间:2011-04-08 05:01:56

标签: iphone objective-c

UIViewController -> nibName属性的文档中,它说:

  

此属性包含初始化时指定给initWithNibName:bundle:方法的值。此属性的值可能为零。

     

如果使用nib文件存储视图控制器的视图,建议您在初始化视图控制器时明确指定该nib文件。但是,如果未指定nib名称,并且未覆盖自定义子类中的loadView方法,则视图控制器将使用其他方法搜索nib文件。具体来说,它会查找具有适当名称的(不带.nib扩展名),并在请求其视图时加载该nib文件。具体来说,它(按顺序)查找具有以下名称之一的nib文件:

     
      
  1. 如果视图控制器类名以单词“Controller”结尾,就像在MyViewController中一样,它会查找名称与类名匹配的nib文件,而不是“Controller”,如MyView.nib中那样。
  2.   
  3. 查找名称与视图控制器类名称匹配的nib文件。 例如,如果类名是MyViewController,则查找一个MyViewController.nib文件。
  4.   

我的问题是,班级如何知道自己的文件名?

1 个答案:

答案 0 :(得分:2)

我认为在框架中他们使用自己的API ... NSString *string = NSStringFromClass([self class]);所以他们可以获得类名......

在他们搜索viewController类文件的文档中,以“Controller”一词结束。