当我使用Visual Studio for Mac(v8.4.5)创建新的“ Master Detail App”时,UISplitViewController
的默认行为是当它以纵向显示在iPhone上时首先显示Detail页面模式。
我希望(正如我认为大多数人希望的那样)默认情况下显示Master页面。就我而言,母版页是一个包含联系人列表的表格视图。
此问题类似于:UISplitViewController in portrait on iPhone shows detail VC instead of master,但适用于Xamarin.iOS
类似于此处建议的解决方案,我试图分配一个代表但没有成功:
public class ContactsSplitViewControllerDelegate : UISplitViewControllerDelegate
{
public override bool EventShowViewController(UISplitViewController splitViewController, UIViewController vc, NSObject sender)
{
return true;
}
public override bool EventShowDetailViewController(UISplitViewController splitViewController, UIViewController vc, NSObject sender)
{
return true;
}
}
public partial class ContactsSplitViewController : UISplitViewController
{
public ContactsSplitViewController (IntPtr handle) : base (handle)
{
this.Delegate = new ContactsSplitViewControllerDelegate();
}
}
设置PreferredDisplayMode
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.PreferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible;
}
经过一些实验,尽管我还不确定这是正确的解决方案,但似乎可以在委托上重写CollapseSecondViewController
。