0

我正在使用以下代码来欺骗我的应用程序,使其相信它是 iPad 并在选项卡栏上显示 6 个选项卡。

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

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

我已经对 and 进行了子类化SFSafariViewControllerUITabBarController同时尝试在可能的情况下调用上面的方法来停止 Tab Bar 的默认设置 - 但是我没有成功。

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

谢谢你。

4

1 回答 1

0

我最终通过将下面的代码片段实现到我的 suclassed 中解决了这个问题UINavigationController

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

希望可以帮助其他人解决问题!

于 2017-08-22T06:47:07.140 回答