diff --git a/Koin/Presentation/Dining/Dining/DiningViewController.swift b/Koin/Presentation/Dining/Dining/DiningViewController.swift index b664afc9..4a6e3f5f 100644 --- a/Koin/Presentation/Dining/Dining/DiningViewController.swift +++ b/Koin/Presentation/Dining/Dining/DiningViewController.swift @@ -173,8 +173,10 @@ final class DiningViewController: UIViewController { zoomedImageViewController.setImage(tappedDiningImage) self.present(zoomedImageViewController, animated: true, completion: nil) - inputSubject.send(.logEvent(EventParameter.EventLabel.Campus.menuImage, .click, "\(self.currentDiningType.name)_\(tappedPlaceText)")) - + if let currentDiningType = self.currentDiningType { + inputSubject.send(.logEvent(EventParameter.EventLabel.Campus.menuImage, .click, "\(currentDiningType.name)_\(tappedPlaceText)")) + } + }.store(in: &subscriptions) diningListCollectionView.shareButtonPublisher.sink { [weak self] item in @@ -183,8 +185,8 @@ final class DiningViewController: UIViewController { }.store(in: &subscriptions) diningListCollectionView.logScrollPublisher.sink { [weak self] _ in - guard let self = self else { return } - self.inputSubject.send(.logEvent(EventParameter.EventLabel.Campus.menuTime, .scroll, self.currentDiningType.name)) + guard let self = self, let currentDiningType = self.currentDiningType else { return } + self.inputSubject.send(.logEvent(EventParameter.EventLabel.Campus.menuTime, .scroll, currentDiningType.name)) }.store(in: &subscriptions) NotificationCenter.default.publisher(for: UIApplication.willEnterForegroundNotification).sink { [weak self] _ in @@ -213,21 +215,26 @@ extension DiningViewController { @objc func handleSwipe(_ gesture: UISwipeGestureRecognizer) { let currentSegmentIndex = diningTypeSegmentControl.selectedSegmentIndex - if gesture.direction == .left { - if currentSegmentIndex < diningTypeSegmentControl.numberOfSegments - 1 { - diningTypeSegmentControl.selectedSegmentIndex = currentSegmentIndex + 1 - } - } else if gesture.direction == .right { - if currentSegmentIndex > 0 { - diningTypeSegmentControl.selectedSegmentIndex = currentSegmentIndex - 1 - } + let nextSegmentIndex: Int + + switch gesture.direction { + case .left: nextSegmentIndex = currentSegmentIndex + 1 + case .right: nextSegmentIndex = currentSegmentIndex - 1 + default: return } + + guard (0..