使用 xib 而不是情节提要的 iOS 应用程序扩展
Posted
技术标签:
【中文标题】使用 xib 而不是情节提要的 iOS 应用程序扩展【英文标题】:iOS App Extension with xib instead of storyboard 【发布时间】:2014-07-26 01:27:10 【问题描述】:我正在为 Today 视图编写一个 ios 8 App Extension(小部件)。 xcode 中的默认模板带有故事板。如何使用 xib 文件而不是情节提要?
documentation 说这是可能的,但我似乎无法弄清楚如何更改 info.plist 文件以加载 xib。
【问题讨论】:
【参考方案1】:您需要做的就是添加“NSExtensionPrincipalClass”和您想要的类名。
【讨论】:
【参考方案2】:正如我最近发现的困难方式 - 请注意“NSExtensionPrincipalClass”必须直接位于“NSExtension”键下。例如类ShareViewController
:
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>ShareViewController</string>
...
</dict>
【讨论】:
【参考方案3】:默认情况下,Today 模板提供以下 Info.plist 键和值(此处针对 OS X 目标显示):
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
<key>NSExtensionPrincipalClass</key>
<string>TodayViewController</string>
</dict>
如果您使用自定义视图控制器子类,请使用自定义类名替换 NSExtensionPrincipalClass 键的 TodayViewController 值。
iOS。如果您不想使用模板提供的情节提要文件,请删除 NSExtensionMainStoryboard 键并添加 NSExtensionPrincipalClass 键,使用您的视图控制器的名称作为值。
创建 Today 小部件所做的大部分工作都涉及设计 UI 和实现一个视图控制器子类来执行您的自定义功能。
BY APPLE GUIDELINES:-->click to view
【讨论】:
以上是关于使用 xib 而不是情节提要的 iOS 应用程序扩展的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 xib 或情节提要对 UITableViewController 进行子类化?