Extension定義
extension UIViewController { func presentWithFullScreen<T: UIViewController>(storyboardId: String, handler: ((T) -> Void)?){ let vc = self.storyboard?.instantiateViewController(identifier: storyboardId) as! T if let wrappedHandler = handler { wrappedHandler(vc) } vc.modalPresentationStyle = .overFullScreen vc.modalTransitionStyle = .coverVertical self.present(vc, animated: true) } }
呼び出し例
presentWithFullScreen(storyboardId: "match") { (matchView: MatchViewController) -> Void in let myTeam = self.myTeamPreviewView.team! let enemyTeam = self.enemyTeamPreviewView.team! matchView.teams = [myTeam, enemyTeam] }