gpt4 book ai didi

ios - UIDatePicker 不响应 setDate

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:18 24 4
gpt4 key购买 nike

我有一个应用程序,可以让您选择每天提醒您完成一项任务。为了在 TestFlight 上与我的 beta 用户一起测试它,我设置了一个虚拟的 UIViewController 并在其中放置了一个开关以打开和关闭提醒以及一个 UIDatePicker(仅限时间模式)以便设置时间。当您第一次加载 View 时,它会读取现有的 UILocalNotification 并在 UIDatePicker 上显示当前设置的时间。您可以启用/禁用和更改通知时间。就像一个魅力。

但现在我已经完成了与我的 TestFlight 用户的测试,并且我正在将功能移至新屏幕。所以我从头开始重建整个东西,除了我将旧测试 View Controller 中的代码复制并粘贴到新的。所以它们完全相同 - 几乎相同。

唯一的区别是新的被单独放置在 UITableViewCell 而不是 UIViewController 中 - 这样它就可以很好地匹配其余部分应用程序的设置。

在新位置,它根据用户是否启用了提醒来正确设置开关状态,我可以使用它来启用/禁用它们。我还可以将提醒时间更改为新时间。奇迹般有效。但是,当我加载新位置时,UIDatePicker 显示当前 时间,而不是 UILocalNotification 中预先确定的时间。我完全无法解释它。正如我所说,代码已从旧位置复制并粘贴到新位置。旧的仍然有效。新的没有。以下是有问题的代码。

我只能假设它与位于 UITableViewCell 内部有关,因为这是唯一的区别,但我不明白为什么这很重要。

编辑:我一直在四处寻找解决方案,但没有找到任何解决方案。似乎使用 setDate 根本没有效果。我已经打印了所有变量以查看它们返回的内容,一切都是正确的。这几乎就像有什么东西阻止 UIDatePicker 响应 setDate。我在任何地方都找不到任何其他文章来解决这个问题。我真的希望有人以前遇到过这个问题。

感谢您的帮助!

    if let notificationArray = UIApplication.sharedApplication().scheduledLocalNotifications {

if notificationArray.count != 0 {

let oneNotification = notificationArray[0]

oneNotification.timeZone = NSTimeZone.defaultTimeZone()

let savedDate = oneNotification.fireDate

let calendar = NSCalendar.currentCalendar()
let components = NSDateComponents()
components.hour = calendar.component(.Hour, fromDate: savedDate!)
components.minute = calendar.component(.Minute, fromDate: savedDate!)

timePicker.setDate(calendar.dateFromComponents(components)!, animated: false)


}

}

最佳答案

所以我似乎已经自己解决了这个问题,但没有按照我预期的方式解决。我使用界面设计器在 XIB 的 UITableViewCell 中创建了 UIDatePicker。一时心血来潮,我求助于删除它并以编程方式创建它。它完美运行!!

我对它所做的唯一改变就是我上面所说的 - 所有其他代码保持不变,我只是将以编程方式创建的 UIDatePicker 连接到相同的方法和操作被删除的留下。

作为记录,我还在界面设计器中重新创建了 UIViewController 中的另一个 UIDatePicker 并再次复制并粘贴了代码。它也很好用。这似乎确实与它被放置在 UITableViewCell 中有关……很奇怪。

我想知道这是否是一个错误?无论如何,如果您遇到同样的问题,请尝试一下。

关于ios - UIDatePicker 不响应 setDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36854948/

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