0

我使用下面的代码来欺骗我的应用程序,让它相信它是一个iPad,并在标签栏上显示6个选项卡。标签栏忽略UITraitCollection请求 - 6个标签所需

-(UITraitCollection *)traitCollection 
{ 
    UITraitCollection 
    *realTraits = [super traitCollection], 
    *lieTrait = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular]; 
    return [UITraitCollection traitCollectionWithTraitsFromCollections:@[realTraits, lieTrait]]; 
} 

这是一切都很好,除了从我已经旋转了几次SFSafariViewController返回时。我遇到的问题是标签栏默认回来并显示四个选项卡以及更多页面。我的问题是什么?需要注意的是,只需打开SFSafariViewController然后回去不会触发选项卡栏默认 - 所以我假设它与旋转把一个新的视图放在顶部(忽略UITraitCollection呼叫)。

我已经分类了SFSafariViewControllerUITabBarController,同时尝试调用上面的方法尽可能地停止标签栏默认 - 但我没有成功。

注意:旋转时出现'[App] if we're in the real pre-commit handler we can't actually add any new fences due to CA restriction'错误 - 如果有任何帮助。

谢谢。

回答

0

我最终解决了这个问题,将下面的代码片段放入我的省略UINavigationController

- (UITraitCollection *)overrideTraitCollectionForChildViewController:(UIViewController *)childViewController 
{ 
    return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular]; 
} 

希望能帮助别人解决问题!