たぶんObjective-CでiPhoneアプリを書いている人には常識なんだろうけど、
Xamarin.iOSでページ遷移を色々試していて、躓いた点があったのでメモ。
基本的にStoryboardで画面遷移を設定してあげるのが良いのだろうけど、
C#上でページ遷移を記述する方法も確認しておきたかったので、以下のように記述。
partial void testPageMoveButton(UIButton sender) { // ストーリーボードから遷移したい画面のViewControllerを取得する var howTopage = Storyboard.InstantiateViewController("HowToPage") as HowToPageViewController; // NavigationControllerがnullで例外発生!! NavigationController.PushViewController(howTopage, true); }
なんだけどNavigationControllerがnullでエラー。
根本的にiOSのページ遷移の仕組みを理解していないのが辛い。
色々調べたところ、下記のURLのようにストーリーボードでNavigationControllerを起点とするように設定すると良いらしい。
http://gihyo.jp/dev/serial/01/wams/0003
追伸:UIButtonのUpInsideイベントに対応するイベントハンドラーをC#側で定義してあげると、「MonoTouch.UIKit.UIButtonの実装宣言に対する定義宣言が見つかりませんでした。」これ~.designer.csファイルで自動生成する部分の不具合のような・・・。Mac上のXamarin Studioだとシミュレーターのバージョンを切り替えたりするとうまく動くけどVisualStudioだと再起動したり、クリーンしたりいろいろ試して決め手はないけどなんとなく解消できる気がする。みなさんどうですか?
Please give us your valuable comment