gpt4 book ai didi

ios - 从 PopOver 更改标签的文本

转载 作者:行者123 更新时间:2023-11-29 01:43:25 24 4
gpt4 key购买 nike

我有一个主视图,它有一个名为 timeLabel 的标签和一个调用弹出 View 的按钮。

在弹出 View 中,我可以选择一个时间(小时和分钟),当我选择时,我希望标签文本立即更改为所选时间(标签的初始值:“22:00”)。

我尝试做的是在主视图中创建一个函数来更改标签的文本:

func setNotiTimeHour(hour: Int) 
var time = self.notiTimeLabel.text!.componentsSeparatedByString(":") //ERROR

var newTime = String(hour) + ":" + time[1]

self.notiTimeLabel.text = newTime
}
func setNotiTimeMin(min: Int) {
var time = self.notiTimeLabel.text!.componentsSeparatedByString(":") //ERROR

var newTime = time[0] + ":" + String(min)

self.notiTimeLabel.text = newTime
}

然后我尝试在小时或分钟更改时调用这些函数,如下所示:

SettingsTableViewController().setNotiTimeHour(Int(hours))
SettingsTableViewController().setNotiTimeHour(Int(minutes))

当我像这样调用函数时,我收到一条错误消息:“ fatal error :在展开可选值时意外发现 nil”

我认为这意味着标签没有值(value)。

为什么会出现此错误,是否有其他方法可以更改标签的文本?

最佳答案

SettingsTableViewController() 创建一个新的 View Controller 。它不使用您已有的实例。这就是标签为 nil 的原因。

您需要将对现有 View Controller 的引用传递给您的弹出框 Controller ,将其保存在一个属性中,然后调用该属性。您可能希望为此创建一个委托(delegate)协议(protocol),以便可以从 SettingsTableViewController 之外的其他 View Controller 呈现此弹出窗口类。

关于ios - 从 PopOver 更改标签的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169502/

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