我在 UINavigationController 中嵌入了一个 UISplitViewController,它带有一个 UINavigationItem 按钮,用于切换纵向主视图的显示。当 View 首次以纵向加载时,我想在细节 View 上方显示主视图。
我发现的任何类似示例都显示主视图和细节 View 以纵向方向拆分屏幕,但我需要细节 View 以纵向全屏显示,并且在 UISplitViewController 首次加载时主视图覆盖细节 View (就像主视图已从左侧滑出)。有人知道怎么做吗?
最佳答案
编辑:它不是重复的。答案在评论中发现。解决方案是在 UISplitViewController 上使用 preferredDisplayMode
并将其设置为 UISplitViewControllerDisplayModePrimaryOverlay
将原始答案留给评论和后代。
原始答案
这是一个副本:UISplitViewController in portrait on iPhone shows detail VC instead of master
作为引用,这种情况下的解决方案是让实现 UISplitViewControllerDelegate
的 View Controller 使用以下代码:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController
collapseSecondaryViewController:(UIViewController *)secondaryViewController
ontoPrimaryViewController:(UIViewController *)primaryViewController {
if ([secondaryViewController isKindOfClass:[UINavigationController class]]
&& [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]]
&& ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) {
// Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.
return YES;
} else {
return NO;
}
}
关于ios - UISplitViewController 在纵向显示细节上方的主视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849654/