AJ_*_*310 12 iphone objective-c uisplitviewcontroller ios
我目前正在开发iOS 8并使用新的自适应框架开发应用程序.奇怪的是当我使用iPhone上的splitviewcontroller与这个故事板配置时,应用程序不是从主视图控制器开始,而是从细节控制器开始.这是一个错误,我怎么能修复它?
只有当包含master的navigationController存在时才会发生这种情况,如果我将其删除,应用程序将以主控制器启动.
小智 11
要实现的是,当分割视图控制器应用程序以纵向方式在iPhone 6 Plus上启动时,它只是显示处于折叠状态的拆分视图控制器.默认情况下,这会将详细视图推送到主导航控制器中的任何视图控制器上方.
停止在启动时显示特定视图(例如您最初可能在iPad上显示的空白详细视图)的方法,或者实际上在旋转到纵向之后,将在splitViewController中处理此方法:collapseSecondaryViewController:ontoPrimaryViewController:delegate方法.这将在演示前在iPhone或iPhone 6 Plus上以纵向显示时调用.
这样做,您不需要任何特定于设备的代码.
最简单的形式如下:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController
{
if ([secondaryViewController isKindOfClass:[BlankViewController class]])
{
// If our secondary controller is blank, do the collapse ourself by doing nothing.
return YES;
}
// Otherwise, use the default behaviour.
return NO;
}
Run Code Online (Sandbox Code Playgroud)
显然,您需要在splitViewController中执行相反的操作:separateSecondaryViewControllerFromPrimaryViewController:如果您不希望在拆分视图展开后最顶层的主视图控制器在细节方面结束,则为新的辅助视图创建并返回BlankViewController.
请注意在这些方法中将自己的实现与Apple混合,他们会做一些疯狂的事情,比如在其他UINavigationControllers中嵌入UINavigationControllers.请参阅我的相关答案:https://stackoverflow.com/a/26090823/4089333
小智 0
这可能是一个错误,因为它SplitViewController
仅适用于 iPad。此外,当您将其纵向放置时,它默认显示详细视图,而主视图将显示为条形。您必须使用某种方法来更改它,例如splitViewController:shouldHideViewController:inOrientation
这是一份 Apple 文档,提到了您的问题
我希望这有帮助!
归档时间: |
|
查看次数: |
4912 次 |
最近记录: |