Skip to content

Commit 16c87a4

Browse files
committed
Fix opening the right day of the conference
1 parent 92d7ddc commit 16c87a4

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

trySwift/ScheduleViewController.swift

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ import TrySwiftData
1111
import Timepiece
1212

1313
class ScheduleViewController: ButtonBarPagerTabStripViewController {
14+
private var hasMovedToTodaysDate = false
1415

15-
let days = ConferenceDay.all
16+
private let days = ConferenceDay.all
1617

1718
fileprivate let sessionDetailsSegue = "sessionDetailsSegue"
1819

@@ -29,8 +30,17 @@ class ScheduleViewController: ButtonBarPagerTabStripViewController {
2930
buttonBarView.backgroundColor = .white
3031
settings.style.selectedBarBackgroundColor = .white
3132
buttonBarView.selectedBar.backgroundColor = .trySwiftAccentColor()
32-
33-
moveToCorrectDate()
33+
}
34+
35+
override func viewDidAppear(_ animated: Bool) {
36+
super.viewDidAppear(animated)
37+
38+
// sadly not isBeingPresented nor isMovingToParentViewController
39+
// is not working here so we have to store the state locally
40+
if !hasMovedToTodaysDate {
41+
hasMovedToTodaysDate = true
42+
moveToCorrectDate()
43+
}
3444
}
3545

3646
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
@@ -42,21 +52,21 @@ class ScheduleViewController: ButtonBarPagerTabStripViewController {
4252
guard segue.identifier == sessionDetailsSegue,
4353
let navigationVC = segue.destination as? UINavigationController,
4454
let sessionVC = sender as? UIViewController else { return }
45-
55+
4656
navigationVC.pushViewController(sessionVC, animated: true)
4757
}
4858
}
4959

5060
private extension ScheduleViewController {
5161

52-
func moveToCorrectDate() {
53-
if days.count > 1 {
54-
let today = Date.today()
55-
56-
let day2 = days[1].date
57-
if today == day2 {
58-
moveToViewController(at: 1)
59-
}
60-
}
62+
func moveToCorrectDate() {
63+
if days.count > 1 {
64+
let calendar = NSCalendar.current
65+
if let todaysIndex = days.enumerated()
66+
.first(where:{ calendar.isDateInToday($0.element.date) })
67+
.map({$0.offset}) {
68+
moveToViewController(at: todaysIndex, animated: false)
69+
}
6170
}
71+
}
6272
}

0 commit comments

Comments
 (0)