-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
토스트 메시지를 사용한 알림 처리
- 즐겨찾기 상태 변경 시 토스트 메시지 표시
case .updateFavoriteStatus(let cardID, let isFavorite):
if let card = currentState.searchResult.first(where: { $0.id == cardID }) {
// ...
if (RealmManager.shared.getCard(withId: cardID)?.toPokemonCard()) != nil {
let toastMessage = isFavorite ? "\(card.name)이(가) 즐겨찾기에 추가되었습니다." : "\(card.name)이(가) 즐겨찾기에서 제거되었습니다."
DispatchQueue.main.async {
UIApplication.shared.windows.first?.makeToast(toastMessage)
}
}
}
// ...-
updateFavoriteStatus 액션 처리 시, 해당 카드의 즐겨찾기 상태를 업데이트하고 토스트 메시지를 표시
-
즐겨찾기 추가/제거에 따라 적절한 메시지를 생성하고, DispatchQueue.main.async를 사용하여 메인 스레드에서 토스트 메시지를 표시
-
페이지네이션 종료 시 토스트 메시지 표시
case .loadNextPage:
// ...
searchQuery(query: query, page: nextPage, rarity: rarity)
.map { response in
guard !response.data.isEmpty else {
DispatchQueue.main.async {
UIApplication.shared.windows.first?.makeToast("더 이상 로드할 데이터가 없습니다.")
}
return .setCanLoadMore(false)
}
return .appendSearchResults(response.data)
}
.catch { .just(.setError($0)) },
// ...-
loadNextPage 액션 처리 시, searchQuery 함수를 호출하여 다음 페이지 데이터를 가져옴.
-
응답 데이터가 비어있는 경우, "더 이상 로드할 데이터가 없습니다."라는 토스트 메시지를 표시.
-
UIAlertController를 사용한 알림 처리
private func showNoResultsAlert() {
let alertController = UIAlertController(title: "검색 결과 없음", message: "입력한 검색어에 해당하는 포켓몬이 없습니다.", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "확인", style: .default, handler: nil))
present(alertController, animated: true, completion: nil)
}-
showNoResultsAlert 메서드를 호출하여 "검색 결과 없음" 알림을 표시
-
UIAlertController를 사용하여 알림을 생성하고, "확인" 버튼을 추가
-
present 메서드를 사용하여 알림을 화면에 표시
-
에러 알림 표시
private func showErrorAlert(message: String) {
let alertController = UIAlertController(title: "에러", message: message, preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "확인", style: .default, handler: nil))
present(alertController, animated: true, completion: nil)
}- showErrorAlert 메서드를 호출하여 에러 알림을 표시
- UIAlertController를 사용하여 에러 메시지와 함께 알림을 생성하고, "확인" 버튼을 추가
- present 메서드를 사용하여 알림을 화면에 표시
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels