iOS/스탠포드 iOS 강의
[스탠포드iOS] 익스텐션(Extensions)
홍루피
2024. 3. 27. 16:29
익스텐션(Extensions)
메소드나 프로퍼티를 다른 클래스에게 추가하도록 해줌
extension UIViewController {
var contentViewController: UIViewController {
if let navcon = self as? UINavigationController {
return navcon.visibleViewController
} else {
return self
}
}
}
연결된 뷰컨트롤러가 네비게이션컨트롤러든 아닌든 상관없이 내가 보고자 하는 뷰를 가져올 수 있음
클래스에 맞는 메소드로 설계해야함
if let myvc = segue.destinationViewController.contentViewController as? MyVC
익스텐션 제한사항
모든 메소드나 프로퍼티를 다시 실행할 수 없음(재실행 개념 아닌 추가의 개념)
모든 프로퍼티는 computed property여야 함(어떤 것도 저장할 수 없음)