Ada*_*dam 7 xib uiviewcontroller ios
iOS上的initWithNibName很聪明:它可以自动为iPad而不是iPhone加载不同的NIB(虽然很多人不知道这一点 - 它在UIViewController.initWithNibName中没有记录!).
但它还能做些什么呢?我发现的唯一的Apple文档解释说:
但是没有链接到图像匹配的规则,我找不到任何明确的文档:(.
规则可能包括:"如果你在文件名的末尾加上@ 2x,你会获得不同的视网膜NIB"(我不知道这是否有效).
我真正想要的是列出了使用的规则.如果我可以更多地使用他们的智能名称匹配(例如,如果他们有"加载横向笔尖与加载肖像笔尖"),它将节省大量硬编码 - 在我编写的几乎每个应用程序中重复 -
为了回答您的(主要)问题,这些是文件名匹配的规则initWithNibName:
\n\n\n...但是,如果您不指定 nib 名称,并且不重写自定义子类中的 loadView 方法,则视图控制器会使用其他方式搜索 nib 文件。具体来说,它会查找具有适当名称(不带 .nib 扩展名)的 nib 文件,并在请求视图时加载该 nib 文件。具体来说,它(按顺序)查找具有以下名称之一的 nib 文件:
\n\n\n
\n\n- 如果视图控制器类名以单词 \xe2\x80\x9cController\xe2\x80\x9d 结尾,如在 MyViewController 中,它将查找名称与类名匹配但不包含单词 \xe2\x80\x9cController 的 nib 文件\xe2\x80\x9d,如 MyView.nib 中所示。
\n- 它查找名称与视图控制器类名称匹配的 nib 文件。例如,如果类名称为\n MyViewController,它将查找 MyViewController.nib 文件。
\n来自nibName下的 UIViewController 文档
\n
但还有更多......实际上NSBundle有一些非常聪明的规则来定位其中的资源。这是描述这些规则的文档页面\n(请参阅:iOS 中的设备特定资源)。
这将我们带到此页面,该页面描述了可应用于捆绑资源的所有修饰符(和基本模式)(我相信这是您提到的有关图像文件名匹配的链接)。
\n| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |