iOSの画面に対してURLを割り振って、自由に画面を表示する

使用場面

Rails風なRoutesをiOSに実装したい。そのRoutesを使用して newsapp://articles/1234 のようなURLSchemeを上手く処理したい。

そして、UINavigationControllerに対して[HomeViewController, ArticleViewController]のような構造な上に起動したタイミングでArticleViewControllerを表示したい。

また、新規登録時に利用規約画面を出しつつも、その下にはちゃんと目的のArticleViewControllerが表示されるようにしたい。

必要な構成

  • ViewControllerの表示構造を制御できる層
  • URLSchemeを解釈する機能
  • 解釈したパラメータをViewControllerに渡す機能
  • 解釈したパスから構造を決定する機能

必要な機能

  • Routerを作成
  • ViewControllerの生成
  • ViewControllerのキャッシュ
  • パスに対する画面構造の生成

結論

やってみたけど、実装は出来ました。一般化・ライブラリ化は、システムに深く根付きすぎていて分離できず、現段階では難しそうでした。