酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Bridge for iOSではUISplitViewControllerを使うと画面が表示されなくなるようです

Windows Bridge for iOSは、Objective-Cで書かれたiOSアプリをWindowsアプリに変換するソリューションです。詳しくはこちらの記事を御覧ください。

先日、storyboardで定義したUITableViewControllerのプロジェクトを変換して、Windows側で実行するとなぜかセルが表示されない💢 という記事を書きました。

この認識は間違ってたかもしれない……ひょっとするとナビゲーションバーとセルが表示されていないのではなくて、画面そのものが表示されていないのではないかと考えました。

改めてXcodeのウィザードで生成されたMaster-Detail ApplicationのMain.storyboardを眺めていました。この小さなアプリの画面遷移の全てが定義されているstoryboardです。

Windows Bridge for iOS SDKの最新バージョンで初めてstoryboardが変換できるようにサポートされたようで、ひとつのstoryboardに多くの要素を入れると正しく解釈できなくなるのではないかと推測しました

UISplitViewControllerをstoryboardから削除すると画面が表示されるようになった

UISplitViewControllerを使うのをやめて、いきなりUINavigationViewControllerを表示させるようにしました。

ガーン!普通に表示されるじゃないか。

結論としては、UISplitViewControllerを使うとWindows側で正しく表示されないでした。

GitHubに類似事象のIssueが起票されていました

GitHubにIssueも登録されていましたがUISplitViewControllerは使用頻度が低いらしいのでサポートされるのはまだ先のことなのかもしれません。

関連記事

このエントリでは、Windows Bridge for iOS (旧名: WinObjC)についてを紹介させていただきました。Windows Bridge for iOSは、Windows 10で使用できるようにブリッジさせて、Objective-CのコードやiOS APIを使ったコードを再利用するためのプロジェクトです。

この他にもWindows Bridge for iOSのネタを紹介しております。Tipsをまとめておりますのでこちらのページをご参照ください。