但它还能做些什么呢?我发现的唯一的Apple文档解释了:
但是没有与图像匹配规则的链接,我也找不到任何明确的文档:(。
规则可能包括:“如果你在文件名的末尾加上@ 2x,你会获得不同的视网膜NIB”(我不知道这是否有效)。
我真正想要的是列出了使用的规则。如果我可以更多地使用他们的智能名称匹配(例如,如果他们有“加载风景笔尖与加载肖像笔尖”),它将节省大量硬编码 - 在我写的几乎每个应用程序中重复 -
答案 0 :(得分:2)
要回答您的(主要)问题,这些是initWithNibName
中的文件名匹配规则:
...但是,如果您没有指定笔尖名称,并且不要覆盖 视图控制器搜索自定义子类中的loadView方法 使用其他方法获取nib文件。具体来说,它寻找一个笔尖 具有适当名称(没有.nib扩展名)和加载的文件 每当请求其视图时该nib文件。具体来说,它看起来 (按顺序)对于具有以下名称之一的nib文件:
- 如果视图控制器类名以单词“Controller”结尾,就像在MyViewController中一样,它会查找名称与之匹配的nib文件 没有单词“Controller”的类名,如MyView.nib中所示。
- 查找名称与视图名称匹配的nib文件 控制器类。例如,如果类名是 MyViewController,它查找MyViewController.nib文件。
醇>来自UIViewController的 nibName
下的文档
但还有更多......实际上NSBundle
有一些非常智能的规则来定位其中的资源。 Here is the documentation page describing these rules
(请参阅: iOS中的设备特定资源)。
这使我们to this page描述了可以应用于捆绑资源的所有修饰符(和基本模式)(我相信这是关于图像文件名匹配的链接)。