如何在iOS8上以编程方式创建Today widget,没有故事板?

栏目: IOS · 发布时间: 6年前

内容简介:我试图删除故事板文件和相关的Info.plist条目,但这个时间延长停止工作;它甚至不能从XCode启动.操作无法完成. (LaunchServicesError错误0.)正常应用程序(包含应用程序)很容易,因为我们看到它是入门点和应用程序委托,但是如何在扩展上呢?

我试图删除故事板文件和相关的Info.plist条目,但这个时间延长停止工作;它甚至不能从XCode启动.

操作无法完成. (LaunchServicesError错误0.)

正常应用程序(包含应用程序)很容易,因为我们看到它是入门点和应用程序委托,但是如何在扩展上呢?

我做了以下步骤:

>从您的项目中删除故事板文件

>修改info.plist:

转到NSExtension字典,删除此键:NSExtensionMainStoryboard.用这个密钥NSExtensionPrincipalClass替换它,并添加你的ViewController作为值,例如TodayViewController.

之前:

<key>NSExtension</key>
<dict>
    <key>NSExtensionMainStoryboard</key>
    <string>MainInterface</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.widget-extension</string>
</dict>

后:

<key>NSExtension</key>
<dict>
    <key>NSExtensionPrincipalClass</key>
    <string>TodayViewController</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.widget-extension</string>
</dict>

>如果您使用Swift,则必须在目标的“构建设置”中启用“嵌入式内容包含Swift代码”.将其设置为YES.

>另外我必须在我的TodayViewController类(导入之后)添加@objc(TodayViewController).

该应用程序应该运行.但还有另外两件事我不得不做:

>创建视图.显然没有自动创建视图.

所以添加这些行:

override func loadView()
{
    view = UIView(frame:CGRect(x:0.0, y:0, width:320.0, height:200.0))
}

>并在您的viewDidLoad方法中设置小部件的高度:self.preferredContentSize = CGSizeMake(0,200)

http://stackoverflow.com/questions/26037321/how-to-create-a-today-widget-programmatically-without-storyboard-on-ios8


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

群体性孤独

群体性孤独

[美] 雪莉·特克尔 / 周逵、刘菁荆 / 浙江人民出版社 / 2014-3-1 / CNY 66.90

[内容简介] ☆ 你是否也熟悉这样的场景:家人在一起,不是交心,而是各自看电脑和手机;朋友聚会,不是叙旧,而是拼命刷新微博、微信;课堂上,老师在讲,学生在网上聊天;会议中,别人在报告,听众在收发信息。所有这些现象都可以归结为“群体性孤独”——我们似乎在一起,但实际上活在自己的“气泡”中。我们期待他人少,期待技术多。不间断的联系,是否让人类陷入了更深的孤独? ☆ 麻省理工学院社会学教授雪......一起来看看 《群体性孤独》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试