segue로 storyboard를 연결해 놓고 특정 조건일 때 해당 segue로 연결을 막고 싶은 경우가 있다.
가령 특정 메뉴를 들어가고자 할땐 로그인이 되있지 않다면 로그인 화면으로 유도하려면 segue를 중간에 가로채야 한다.
가령 특정 메뉴를 들어가고자 할땐 로그인이 되있지 않다면 로그인 화면으로 유도하려면 segue를 중간에 가로채야 한다.
UIViewController 안에서 shouldPerformSegueWithIdentifier 를 사용하여 구현할 수 있다.
NeedLoginSegue 로 이동할 경우 사용자 정보( checkUserInformation(userDefaults) )가 false면 LoginSegue 를 열게 하는 코드는 다음과 같다.
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
if identifier == "NeedLoginSegue" {
if checkUserInformation(userDefaults)==false {
self.performSegueWithIdentifier("LoginSegue", sender: nil)
}
return false
}
return true
}
unwind와 함께 빈번하게 쓰는 패턴이니 기억해두자.
댓글
댓글 쓰기