在 Universal iOS 应用中使用 Storyboard 的 UISplitView
UISplitView using Storyboard in Universal iOS app
我在我的通用 iOS 应用程序中使用 UISplitView,而且我只有一个故事板。我能够实现所有功能,但很少有,
在 iPad 中,我希望主视图始终可见,因此我使用了委托,
-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return NO;
}
但主视图仍然隐藏在纵向模式下。同样在 iPhone 中,应用程序启动时带有带有导航后退按钮的 DetailView。我希望 iPhone 应用程序首先显示 MasterView。我已经查看了几个示例,例如 this, or this,但没有解决我的问题。
我正在使用 Objective C 而不是 Swift。
看看documentation for UISplitViewControllerDelegate
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
已在 iOS8 中弃用,您必须改为设置 preferredDisplayMode
:
controller.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
至于 iPhone 应用程序显示细节视图控制器而不是主视图控制器,实现 UISplitViewControllerDelegate
方法:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
return YES;
}
您可以像这样通过用户运行时变量设置此 属性:
Key Path Type Value
preferredDisplayMode Number 2
这是首选显示模式的值
case automatic = 0
case primaryHidden = 1
case allVisible = 2
case primaryOverlay = 3
我在我的通用 iOS 应用程序中使用 UISplitView,而且我只有一个故事板。我能够实现所有功能,但很少有,
在 iPad 中,我希望主视图始终可见,因此我使用了委托,
-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return NO;
}
但主视图仍然隐藏在纵向模式下。同样在 iPhone 中,应用程序启动时带有带有导航后退按钮的 DetailView。我希望 iPhone 应用程序首先显示 MasterView。我已经查看了几个示例,例如 this, or this,但没有解决我的问题。
我正在使用 Objective C 而不是 Swift。
看看documentation for UISplitViewControllerDelegate
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
已在 iOS8 中弃用,您必须改为设置 preferredDisplayMode
:
controller.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
至于 iPhone 应用程序显示细节视图控制器而不是主视图控制器,实现 UISplitViewControllerDelegate
方法:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
return YES;
}
您可以像这样通过用户运行时变量设置此 属性:
Key Path Type Value
preferredDisplayMode Number 2
这是首选显示模式的值
case automatic = 0
case primaryHidden = 1
case allVisible = 2
case primaryOverlay = 3