티스토리 뷰

VC1 →(modal) VC2 →(navigation) VC3


Navigation Controller로 연결된 여러 뷰에서 또 다른 뷰를 Modal 방식으로 띄우는 건 비교적 쉽지만, Modal로 띄운 뷰에서 Navigation 형태로 Push하는 건 약간의 수고를 요한다.

단순히 Modal 하나만을 띄울 땐 StoryBoard 상에서 Segue를 끌어와 identifier와 prepare 메서드를 이용하여 Modal Presentation을 구현했다면, 이번에는 VC1 속 버튼 자체에서 코드 작업이 필요하다.

Navigation 형식의 Push를 원한다면 해당 뷰 컨트롤러(VC2)가 Navigation Controller에 Embed in 되어있어야 한다. 따라서 Modal 형태로 VC2를 품고 있는 NavigationController를 띄운다.

// VC2를 코드 내에서 사용 가능하게 선언(StoryBoard 상에서 identifier 지정 필수)
guard let vc = storyboard?.instantiateViewController(identifier: "VC2") as? VC2 else { return }

// navigationController를 선언하고 rootView로 VC2를 할당
let navigationController = UINavigationController(rootViewController: vc)

// 화면 전환 커스텀, 필자는 PullScreen으로 띄우고, VC2에서 navigationBar가 보이지 않게 설정
navigationController.modalPresentationStyle = .fullScreen
navigationController.isNavigationBarHidden = true

// 해당 navigationController를 모달 형태로 present
present(navigationController, animated: true)

해당 작업을 마치면, VC2 에서 Navigation 형태의 Push를 구현할 수 있다.

아직 기본적인 화면 전환과 데이터 전달이 버겁다면, 해당 링크들을 참고하자.

 

 

Dev : Storyboard를 활용한 화면 전환 4가지 방법

* push는 navigation controller가 연결된 상태에서만 작동 * 1. segue로 push 전환 : 원래 화면에 있는 Button을 끌어다가 이동할 VC에 'Show'로 연결 뒤로가기 : 이동한 화면 속 Button에 해당 코드 작성 self.n..

dusanbaek.tistory.com

 

Dev : Storyboard, Protocol 및 Delegate를 활용한 화면 간 데이터 전달

Dev : Storyboard를 활용한 화면 전환 4가지 방법 * push는 navigation controller가 연결된 상태에서만 작동 * 1. segue로 push 전환 : 원래 화면에 있는 Button을 끌어다가 이동할 VC에 'Show'로 연결 뒤로가기..

dusanbaek.tistory.com

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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 31
글 보관함