반응형

iOS 앱 개발/앱 개발 중 깨달음 12

세그를 막는 방법! shouldPerformSegue!

스토리보드로 세그를 연결을 다해주었을때, 어떤 특별한 경우에 내가 세그를 막아서 다음 뷰로 넘어가지 않게 하려면 어떻게 해야할까? 그 답은 shouldPerformSegue라는 메소드가 해결사다. 나같은 경우에는 checker: Bool을 if문에 넣어 case별로 조절하였다. unwind와 비슷한 케이스로 함께 같이 많이 쓰이니 항상 유의하도록 하자. override func shouldPerformSegue(withIdentifier: String, sender: Any?) -> Bool { if checker == true { return true } return false } 오늘의 행복한 삽질~

RootViewController로 가는 두가지 방법

내 View가 3개 (화면1, 화면2, 화면3)가 있다고 가정을 할때 화면3에서 화면1로 가려면 어떻게 해야할까? 기본적으로 view는 stack구조라서 메모리 할당이 된 화면1과 화면2, 화면3이 순서대로 stack에 쌓인다. 나는 메인 스토리보드에서 화면3에서 화면1로 갈 때 그냥 segue로 show시키면 되는 줄 알았지만 그러면 화면1, 화면2, 화면3 그 위에 화면1이 올라온 상태라 굉장히 위험한 구조가 된다. 그렇다면 stack에 쌓여있는 것들을 한번에 빼고 루트뷰로 돌아갈 수 있을까? 답은 아래와 같다. 네비게이션 용self.navigationController?.popToRootViewController(animated: true)모델로 제시하기self.view.window!.rootVie..

반응형