반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 날짜처리
- 코드스니펫
- 계산기만들기
- 앱개발
- Flutter
- pull down button
- Storyboard Reference
- 커맨드라인툴
- userdefaults
- UISlider
- Swift
- 알고리즘
- Storyboard
- Xcode
- 플러터
- attributedText
- ListTile
- 오토레이아웃
- pop up button
- 스파르타코딩클럽
- 내배캠
- strikeThrough
- DART
- 메모장만들기
- todolist
- ios
- 개발자
- URLSession
- Wil
- 내일배움캠프
Archives
- Today
- Total
이리메라 갖다가
[Swift] ViewController로 메모 앱 만들기(6) : 이전화면으로 이동(popViewController, dismiss, Unwind Segue) 본문
TIL
[Swift] ViewController로 메모 앱 만들기(6) : 이전화면으로 이동(popViewController, dismiss, Unwind Segue)
너이르나 2023. 8. 9. 00:27728x90
반응형
메모를 삭제하는 기능을 구현하던 중에 디테일 페이지에서 삭제 버튼을 누르면 화면간 이동이 없어 삭제된 메모가 화면에 그대로 남아있는 문제가 있었다. 해당 문제를 해결하기 위해 이전화면으로 돌아가는 기능을 수행하는 화면 전환 메서드에 대해 정리하고 내 코드에 알맞은 방법을 적용하고자 한다.
화면 전환 메서드
화면 전환 메서드란 iOS 앱을 개발할 때 화면간 전환을 처리하는 메서드를 의미한다. 이전화면으로 돌아가거나, 데이터의 전달을 처리할 때 사용되기도 한다. 화면을 전환할 수 있는 방법은 크게 세가지로 정리했다.
- Navigation Controller - popViewController
- Modal Presentation - dismiss
- Unwind Segue
Navigation Controller - popViewController 🔗
Navigation Controller를 사용하여 화면을 스택(Stack) 형태로 관리할 경우, popViewController(animated:)를 사용한다. 해당 메서드는 스택에서 가장 위에 있는 뷰 컨트롤러를 제거하고 이전 화면으로 돌아간다.
let delete = UIAlertAction(title: "메모 삭제", style: .default) { [self] (_) in
self.myMemo.deleteMemo(at: prepareMemoIndex!)
// delete를 누를 경우 이전 화면으로 이동
self.navigationController?.popViewController(animated: true)
}
내 코드에서는 해당 메서드를 Alert 내 delete 버튼을 작동할 때 넣어야 하기 때문에 이 방법이 제일 알맞았다.
Modal Presentation - dismiss 🔗
만약 다른 뷰 컨트롤러를 모달로 표시한 경우, dismiss(animated:completion:)를 사용한다.
// 예시코드
@IBAction func backButtonTapped(_ sender: UIButton) {
dismiss(animated: true, completion: nil)
}
Unwind Segue
Unwind Segue는 Storyboard에서 사용되며, 이전 화면으로 화면 복귀를 처리하는 메커니즘을 제공한다. Unwind Segue를 사용하려면 이전 화면에서 메소드를 정의하고 해당 메소드를 Unwind Segue의 액션 메소드로 연결해야 한다.
// 예시코드
@IBAction func unwindToPreviousViewController(segue: UIStoryboardSegue) {
// Unwind Segue의 액션 메소드는 아무 동작도 수행하지 않아도 됨
// 이전 화면으로 돌아가는 작업은 시스템에서 처리
}
728x90
반응형
'TIL' 카테고리의 다른 글
[Swift] ViewController로 메모 앱 만들기(8) : pull down button, pop up button (1) | 2023.08.10 |
---|---|
[Swift] ViewController로 메모 앱 만들기(7) : 오토레이아웃 (0) | 2023.08.09 |
[Swift] ViewController로 메모 앱 만들기(5) : strikeThrough, attributedText (6) | 2023.08.08 |
[Swift] ViewController로 메모 앱 만들기(4) : 현재 코드 점검 (4) | 2023.08.06 |
[Swift] ViewController로 메모 앱 만들기(3) : UIAlertController, UITableViewCell (6) | 2023.08.03 |