【问题标题】:make public class between Today extension and ViewController in app在应用程序中创建 Today 扩展和 ViewController 之间的公共类
【发布时间】:2014-11-14 00:00:57
【问题描述】:

我正在尝试创建 Today 应用扩展。我希望有一个 UIViewController 用于将所有数据加载到应用程序,并在此 UIViewController 中为 Today Extension 和 App 使用相同的变量。 例如:我有适用于 TodayAppExtension 和 app 的 UILabel,我想连接 Label 文本,例如:
my_label.text = "你好"
对两个 UILabels ......我尝试制作公共课程,例如:

这是两个视图控制器的类

导入 UIKit

公共类 AppDataViewController: UIViewController {

@IBOutlet public var pacificLabel: UILabel!

override public func viewDidLoad() {
    super.viewDidLoad()
}

override public func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


public func updateClocks() {
    var time: NSDate = NSDate()
    println("Time: \(time)")

    var timeString : NSString = "Time: \(time)"

    let formatter:NSDateFormatter = NSDateFormatter();
    var timeZone = NSTimeZone(name: "UTC")
    formatter.timeZone = timeZone
    formatter.dateFormat = "HH:mm:ss"
    println("UTC Time: \(formatter.stringFromDate(time))")

    timeZone = NSTimeZone(name: "US/Pacific")
    formatter.timeZone = timeZone
    formatter.dateFormat = "HH:mm:ss"
    println("PST Time: \(formatter.stringFromDate(time))")
    self.pacificLabel.text = formatter.stringFromDate(time)


}

}

如何从 App 的 StoryBoard 和 Extension 的 StoryBoard 访问 self.pacificLabel.text? 总是当我试图从 ViewController 调用函数 updateClock() 时,我得到这个:

致命错误:在展开可选值时意外发现 nil

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    您从未创建过 pacificLabel。

    在你的

    override public func viewDidLoad() {
        super.viewDidLoad()
    }
    

    你需要创建一个 UILabel 对象。

    您遇到的错误是因为您将其声明为在您使用时将存在的可选项。所以你不需要打开它。因此,它期望 pacificLabel 存在,但在您“打开它”时它并不存在。

    在 viewDidLoad 中创建 UILabel 对象,它会起作用。

    如果问题是您的情节提要中存在此标签,则需要将该对象从视图类(情节提要中的视图)控制并拖动到脚本以创建对该对象的引用。

    【讨论】:

    • 我创建了一个标签“@IBOutlet public var pacificLabel: UILabel!”在那个文件 AppDataViewController.swift 中(参见我帖子中的代码)
    • 那么请使用完整的错误消息更新您的问题。您可能在插座和视图之间存在断开的链接。它在说什么是 nil?
    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2019-03-29
    相关资源
    最近更新 更多