UIViewController
Swift의 서브 클래스에 커스텀 이니셜 라이저를 어떻게 추가 합니까?
UIViewController
다음과 같은 하위 클래스를 만들었습니다 .
class MyViewController : UIViewController
{
init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC;
self.rightVC = rightVC;
self.gap = gap;
super.init();
setupScrollView();
setupViewControllers();
}
}
실행할 때 치명적인 오류가 발생합니다.
치명적인 오류 : 'MyApp.MyViewController'클래스에 구현되지 않은 초기화 프로그램 'init (nibName : bundle :)'사용
사용자 지정 이니셜 라이저를 추가 할 때 재정의해야하는 부분도 읽었으므로 init(coder aDecoder:NSCoder)
재정의하고 init
어떻게되는지 살펴 보겠습니다 .
override init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder);
}
이것을 추가하면 Xcode는 self.leftVC is not initialized at super.init call
. 그래서 나는 그것이 해결책이 될 수 없다고 생각합니다. 그렇다면 ViewController
Swift 의 하위 클래스에 사용자 지정 이니셜 라이저를 올바르게 추가 할 수있는 방법이 궁금합니다 (Objective-C에서는 문제가되지 않는 것 같습니다)?
MyViewController
합니까?