背景
例によって、個人開発したScoreBoxという麻雀成績管理アプリからのネタ。
iOS13ではStoryboardでもDIができる件についてを拝見し、せっかくなのでR.swiftを利用して実装しました。
リンク先でもメリットを記載されていますが、プロパティのlet化、この恩恵は非常に大きいです。
やったこと
let gameDetailVC = R.storyboard.main().instantiateViewController(identifier: R.storyboard.main.gameDetail.identifier) { coder in
// GameDetailViewControllerはプロパティに`let game`を持ち、initの引数に必須としている
GameDetailViewController(coder: coder, game: game)
}
navigationController?.pushViewController(gameDetailVC, animated: true)