如何在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


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

查看所有标签

猜你喜欢:

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

The Haskell School of Expression

The Haskell School of Expression

Paul Hudak / Cambridge University Press / 2000-01 / USD 95.00

Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recen......一起来看看 《The Haskell School of Expression》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具