gpt4 book ai didi

ios - 今天扩展在按钮事件后显示 "unable to load"(iOS)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:31 25 4
gpt4 key购买 nike

早上好!

我的 iOS 小部件出现“无法加载”问题。我已经阅读了很多关于“无法加载”的信息,但没有解决我的问题。我不确定,但我认为我的问题是在更改我的内容后刷新小部件。

我的小部件只有一个按钮和一个标签。如果用户按下按钮,标签中的文本将会改变——此时小部件显示“无法加载”。按下按钮后只需一毫秒。

import UIKit
import NotificationCenter

class TodayViewController: UIViewController, NCWidgetProviding {

@IBOutlet var segment_att: UISegmentedControl!

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

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)) {

completionHandler(NCUpdateResult.NewData)
}

func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsZero
}

@IBAction func button_ae(sender: AnyObject) {
let tableviewclass = TodayTableViewController()
tableviewclass.newData()
}

}

重要的是标签显示在 TableViewController 的 TableViewCell 中。所以 TableViewController 被嵌入到容器中的 ViewController 中...来自按钮的监听器调用 TableViewController 文件的方法 newdata()。

import UIKit
import NotificationCenter

class TodayTableViewController: UITableViewController, NCWidgetProviding {

@IBOutlet var table: UITableView!
@IBOutlet var label1: UILabel!


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

func init() {
let meldung: String = "test"
label1.text = meldung
}

func newData() {
let meldung: String = "new test"
label1.text = meldung
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}

代码非常简单和基本 - 所以我想知道这个简单机制中的问题。我希望你能帮助我!

非常感谢!

最佳答案

您的代码假定在调用 newData() 时已设置 label1,甚至在调用构造函数后立即设置。

尝试使用这个可选链接语法,如果属性为 nil,它会安静地失败:

import UIKit
import NotificationCenter

class TodayTableViewController: UITableViewController, NCWidgetProviding {

@IBOutlet var table: UITableView!
@IBOutlet var label1: UILabel!

var meldung: String = "test" // <-- meldung is property

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

func init() {
label1?.text = melding // <-- optional chaining
}

func newData() {
melding = "new test" // <-- set the class property
label1?.text = meldung // <-- optional chaining
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}

而不是调用 newData(),您可以设置 meldung 属性,例如:

tableviewclass.meldung = "new test"

因为您的 viewDidLoad() 将负责设置属性中的 UILabel 文本

关于ios - 今天扩展在按钮事件后显示 "unable to load"(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38853010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com