새 인스턴스를 초기화하는 데 사용할 수있는 UIViewController
확장을 만들려고합니다. 프로젝트의 각보기 컨트롤러마다 해당 스토리 보드가 있습니다.일반 UViewController 이니셜 라이저 만들기
즉 이것은 내가 지금까지 무엇을 가지고
EditSomethingViewController.swift
EditSomethingViewController.storyboard
:
extension UIViewController {
static func initalize() -> UIViewController? {
let name = String(self)
let storyboard = UIStoryboard(name: name, bundle: nil)
return storyboard.instantiateInitialViewController()
}
}
그러나이 내가 그것을 사용할 때, 난 아직 응답을 캐스팅 할 필요가 있다는 것을 의미한다.
즉
if let viewController = EditSomethingViewController.initalize() as? EditSomethingViewController {
// do something with view controller here
}
그것이 내가 응답을 캐스팅하지 않아도 의미있는 방식으로 확장을 만들 수 있습니까?
p.s. Swift 2.3으로 작성된 오래된 프로젝트에서 작업하면 지원되는 답변을 감상 할 수 있습니다.
방금 함수 내 캐스트와'EditSomethingViewController을 반환'대신 수 : 그건 내가이 시험하지 않았다하지만이 작업을해야 너무 많은 일 :
것입니까? –