- 개발 일자 : 2022. 2. 3
상세 화면에서 알람 삭제 기능 구현
- 지금까지는 알람 목록 화면에서 알람 삭제 기능만 구현해뒀는데 알람 상세 화면에서 삭제 셀을 선택했을 때, 알람 삭제 기능이 동작하도록 하기 위해 이전 AlarmSaving 프로토콜에 deleteAlarm() 을 추가했음
- deleteAlarm() 을 추가하고 나니 AlarmSaving 이라는 이름이 좀 애매한 것 같아서 AlarmEditingDelegate 로 변경하였고
- tableView(didSelectRowAt:) 메서드에 해당 셀이 선택된 경우 deleteAlarm() 을 호출하도록 하였음
- 첨에 이상한 값이 삭제되길래 봤더니 해당 메서드의 인자로 오는 indexPath 를 넘기고 있었다,,
protocol AlarmEditingDelegate: AnyObject {
...
func deleteAlarm(at indexPath: IndexPath)
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
...
if indexPath.section == 1, let selectedIndexPath = self.indexPath {
delegate?.deleteAlarm(at: selectedIndexPath)
dismiss(animated: true, completion: nil)
}
...
}
- 따라서 AlarmListVC 에서 해당 메서드를 구현해주었음
func deleteAlarm(at indexPath: IndexPath) {
alarmManager.delete(alarmRowAt: indexPath)
alarmTableView.reloadData()
}
알람 시간 텍스트 표시 수정
와,, 시간을 표시할 때 숫자가 한 자리 수이면 04:08 이런식으로 나와서 0을 없애주려고 뭔가 대단한 작업이 필요한가 싶었는데
dateFormat 을 설정할 때, 해당 자리의 문자를 하나만 사용하면 숫자가 한 자리 수일 때 0이 출력되지 않는다 (신비로운 포맷의 세상)
- Date+String+Converter 파일에서 displayTime 형식을 a h:mm 으로 변경해주었음
enum DateFormats: String {
case displayTime = "a h:mm"
}
참고.
'# iOS | Swift > --- Project' 카테고리의 다른 글
[Alarm] #+3. 알람 레이블 화면 추가 (0) | 2022.02.25 |
---|---|
[Alarm] 1. 기본 알람 목록 및 추가화면 구현, AlarmManager, 삭제 기능 추가 (0) | 2022.02.25 |
[Alarm] #+1. 알람 편집 모드 구현 (0) | 2022.02.03 |
[Alarm] #-1. 사운드 옵션 화면 추가 및 선택한 알람 사운드 전달하기 (0) | 2022.01.26 |
[Alarm] #. 설정한 시간에 알람이 울리도록 구현 (0) | 2022.01.26 |