@@ -43,6 +43,8 @@ public class TimePickerDataSource {
4343 self . hoursPicker = hoursPicker
4444 self . minutesPicker = minutesPicker
4545 self . amPmPicker = amPmPicker
46+
47+ setup ( )
4648 }
4749
4850
@@ -81,8 +83,8 @@ public class TimePickerDataSource {
8183 Locale . current. calendar. pmSymbol]
8284 }
8385 } ( )
84-
85- public func setup( withInitiallySelectedDate initiallySelectedDate : Date ? ) {
86+
87+ private func setup( ) {
8688 hoursPicker? . setItems ( hourPickerOptions. map { hourValue in
8789 let pickerItem = WKPickerItem ( )
8890 pickerItem. title = " \( hourValue) "
@@ -116,31 +118,30 @@ public class TimePickerDataSource {
116118 hoursPicker? . setRelativeWidth ( 0.5 , withAdjustment: 0 )
117119 minutesPicker? . setRelativeWidth ( 0.5 , withAdjustment: 0 )
118120 }
119-
120- // set the initial values of the pickers
121- if let initiallySelectedDate = initiallySelectedDate {
122- let dateComponents = Calendar . current. dateComponents ( Set ( arrayLiteral: . hour, . minute) , from: initiallySelectedDate)
123- let hours = dateComponents. hour!
124- let minutes = dateComponents. minute!
125-
126- hoursPicker? . setSelectedItemIndex ( hours)
127- selectedHour = hourPickerOptions [ hours]
128-
129- let displayedMinutesPerHour = minutePickerOptions. count / 24
130- let corresponsingMinuteIndex = ( minutePickerOptions. firstIndex ( where: { $0 >= minutes } ) ?? 0 ) + ( displayedMinutesPerHour * hours)
131- minutesPicker? . setSelectedItemIndex ( corresponsingMinuteIndex)
132- selectedMinute = minutePickerOptions [ corresponsingMinuteIndex]
133-
134- if userHas24HourTimeEnabled {
135- amPm = nil
121+ }
122+
123+ public func updateDate( to date: Date ) {
124+ let dateComponents = Calendar . current. dateComponents ( Set ( arrayLiteral: . hour, . minute) , from: date)
125+ let hours = dateComponents. hour!
126+ let minutes = dateComponents. minute!
127+
128+ hoursPicker? . setSelectedItemIndex ( hours)
129+ selectedHour = hourPickerOptions [ hours]
130+
131+ let displayedMinutesPerHour = minutePickerOptions. count / 24
132+ let corresponsingMinuteIndex = ( minutePickerOptions. firstIndex ( where: { $0 >= minutes } ) ?? 0 ) + ( displayedMinutesPerHour * hours)
133+ minutesPicker? . setSelectedItemIndex ( corresponsingMinuteIndex)
134+ selectedMinute = minutePickerOptions [ corresponsingMinuteIndex]
135+
136+ if userHas24HourTimeEnabled {
137+ amPm = nil
138+ } else {
139+ if hours < 12 {
140+ amPmPicker? . setSelectedItemIndex ( 0 )
141+ amPm = . am
136142 } else {
137- if hours < 12 {
138- amPmPicker? . setSelectedItemIndex ( 0 )
139- amPm = . am
140- } else {
141- amPmPicker? . setSelectedItemIndex ( 1 )
142- amPm = . pm
143- }
143+ amPmPicker? . setSelectedItemIndex ( 1 )
144+ amPm = . pm
144145 }
145146 }
146147 }
0 commit comments