Ios 被采摘者压垮了。正在尝试在viewDidLoad()中为func预设.hour和.minute

Ios 被采摘者压垮了。正在尝试在viewDidLoad()中为func预设.hour和.minute,ios,swift,xcode,date,datepicker,Ios,Swift,Xcode,Date,Datepicker,我花了2.5个小时搜索谷歌,我想我这辈子都没有上过谷歌搜索第10页。直到今天 我是swift的新手,我想让应用程序打开带有UIDatePicker(datepickermode:time)的新viewcontroller,该UIDatePicker预设为用户选择上次使用datepicker设置时间的时间。基本上就像iphone闹钟,如果有帮助的话 包含.hour和.minute(整数)的结构“Time”有自己的类 我想要一个用viewDidLoad()执行并设置时间选择器的小函数 @IBA

我花了2.5个小时搜索谷歌,我想我这辈子都没有上过谷歌搜索第10页。直到今天

我是swift的新手,我想让应用程序打开带有UIDatePicker(datepickermode:time)的新viewcontroller,该UIDatePicker预设为用户选择上次使用datepicker设置时间的时间。基本上就像iphone闹钟,如果有帮助的话

包含.hour和.minute(整数)的结构“Time”有自己的类

我想要一个用viewDidLoad()执行并设置时间选择器的小函数

   @IBAction func timePicker(_ sender: UIDatePicker) {
    let picker = timePicker.date
    getTime(date: picker)
    print(globalTime.savedTime)
}

func oldTime(withTime: TimeStruct.Time) {

    var newTime = DateComponents()
    newTime.hour = withTime.hour
    newTime.minute = withTime.minute

    var newDate = Date()

    timePicker.calendar.

    //blabliblub i've lost it here. the code makes no sense anymore



}

func getTime(date: Date) {

let components = Calendar.current.dateComponents([.hour, .minute], from: date)
globalTime.savedTime.hour = components.hour!
globalTime.savedTime.minute = components.minute!

}
一旦设置,getTime将保存时间。当再次查看以再次更改时,oldTime为选择器提供先前设置的时间

用户设置时间并单击保存按钮,将当前小时和分钟保存为“时间”类型的变量

哦,如果可能的话,请帮助我使用Date(),而不是NSDate()

非常感谢您抽出时间


费利克斯✌️

您尝试过使用普通选择器吗?日期选择器是具有某些内置函数的模板。然而,一个普通人也许能做你需要它做的一切。例如,只需创建一个包含3个组件(0、1和2)的普通选择器,通过执行以下操作控制小时-分钟和PM/AM:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    self.Picker.delegate = self
    self.Picker.dataSource = self
    PickerData = [["0","1",/*...*/,"9"],["0","1",/*...*/,"9"],["AM","PM"]]
    self.Picker.selectRow(row: /*var*/, inComponent: /*component*/, animated: /*bool*/)
} /*Insert data from previous session above via a variable*/


希望这对任何人都有帮助。感谢您的进一步帮助:)

另一个文件:

import UIKit

class TimeStruct {

struct Time {
    var hour: Int
    var minute: Int
}

var savedTime = Time(hour: 07, minute: 00)
}

谢谢你,这很有道理。虽然它实际上支持以后作为警报工作:小时、分钟、上午/下午是否足以创建每天在这个时间触发的警报?还是我需要一个完整的约会?在我发布后不久,我自己也解决了这个问题。你重写了日期选择器:D(除了它不再处理本地化和12对24小时之类的事情),好吧,所以它必须和日期一样复杂。非常感谢。通知对我来说将是另一件值得学习的大事。我很期待。
import UIKit

var globalTime = TimeStruct()

class Time_Setting: UIViewController {

func oldTime(withTime: TimeStruct.Time) {

    let newHour = withTime.hour
    let newMinute = withTime.minute
    let someDate = Date()

    let newTimePicker = timePicker.calendar.date(bySettingHour: newHour, minute: newMinute, second: 0, of: someDate)

    timePicker.date = newTimePicker!

    }
}
import UIKit

class TimeStruct {

struct Time {
    var hour: Int
    var minute: Int
}

var savedTime = Time(hour: 07, minute: 00)
}