메모 편집
메모 보기 화면의 버튼 레이블 변경
System Item - Compose로 변경
편집버튼 세그웨이 연결
- 뷰로 바로 연결하면 뒤로가기 버튼 등이 제공되지 않을 것이다.
- 따라서 Navigation Controller로 연결해주어야 한다.
ComposeViewController editTarget 추가
editTarget
이 nil이면 새 메모 쓰기 뷰로 동작해야하고 객체가 있을 경우 메모 편집 뷰로 동작해야한다.
- 우리는 현재 보기화면(DetailView)에서 작성화면(ComposeView)로 데이터를 넘겨주기 때문에 두 뷰의 컨트롤러에서 작업해야 한다.
DetailVeiwController prepare 메소드 작성
- 여기서는 sender로 툴바의 compose 버튼이 전달된다.
- 이미 메모속성에 저장되어 있기 때문에 memo를 그대로 전달하면 된다.
- Navigation Controller을 통해 전달되기 때문에 접근방식은 달라진다.
ComposeViewController viewDidLoad 수정
결과 화면
새 메모
메모 편집
ComposeViewController save 수정
editTarget
유무에 따라 데이터 저장 방식이 달라야 함
메모 수정 시 디테일 뷰에 바로 적용되지 않는 현상 픽스
notification 추가
디테일뷰 리로드 메소드 호출
- 뷰 outlet 연결해야 함
디테일뷰 노티피케이션 등록
- 토큰 객체 생성
- 소멸자 생성
- viewDidLoad에서 옵저버 등록(실행 시 reload)
결과
메모 편집 시 디테일뷰에 바로 적용됨을 확인