マスターに UINavigationController があり、詳細に UIViewController がある UISplitViewController があります。デバイスが横向きモードになっている場合、通常の動作を維持したいと考えています。つまり、マスターは横向きで表示され、縦向きでは隠されます。
ただし、ユーザーがマスターで何をクリックするかによって、どの UIViewController が UISplitViewController の詳細部分に読み込まれるかによって異なります。私が望むのは、ユーザーが詳細UIViewControllerのボタンをクリックしたときに、マスターがランドスケープモードで非表示になることです。問題は、これを機能させることができないことです。
私のデリゲートは次のようになります (見やすくするためにいくつかの行を削除しています):
public class SplitControllerDelegate : UISplitViewControllerDelegate {
SplitViewController incomingController;
private bool hideMaster = false;
public override bool ShouldHideViewController (UISplitViewController svc,
UIViewController viewController,
UIInterfaceOrientation inOrientation) {
return hideMaster;
}
public void SetHideMaster(bool value) {
hideMaster = value;
}
}
次に、詳細 UIViewController のように呼び出します
splitControllerDelegate.SetHideMaster(value);
しかし、何も変わりません。変更を実行する方法がわかりませんか?マスターはすぐに消えるべきですか?WillHideViewController が起動する原因は何ですか?
ありがとう
マイク