Skip to content

Commit a19fe8c

Browse files
authored
Add an updateDate(to:_) method
Fixes #2
2 parents bbdd0e8 + 2b4f3de commit a19fe8c

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class InterfaceController: WKInterfaceController {
6161
// ...
6262
}
6363

64-
timePickerDataSource.setup(withInitiallySelectedDate: Date())
64+
timePickerDataSource.updateDate(to: Date())
6565
}
6666

6767
@IBAction func hourPickerDidUpdate(_ index: Int) {

Sample App/WatchKit Sample App Extension/InterfaceController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class InterfaceController: WKInterfaceController {
3333
self?.selectedTimeLabel.setText(timeFormatter.string(from: selectedTime))
3434
}
3535

36-
timePickerDataSource.setup(withInitiallySelectedDate: Date())
36+
timePickerDataSource.updateDate(to: Date())
3737
}
3838

3939
@IBAction func hourPickerDidUpdate(_ index: Int) {

WatchKitTimePicker/TimePickerDataSource.swift

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)