Панель вкладок, игнорирующая запросы UITraitCollection - 6 требуемых вкладок

Я использую следующий код, чтобы заставить мое приложение поверить, что это iPad, и отображать 6 вкладок на панели вкладок.

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

Это все хорошо, за исключением возвращения из SFSafariViewController который я повернул пару раз. У меня проблема в том, что панель вкладок по умолчанию вернулась и показывает четыре вкладки вместе с дополнительной страницей. В чем моя проблема? Важно отметить, что просто открытие SFSafariViewController и затем возвращаясь назад, НЕ запускайте панель вкладок по умолчанию - так что я предполагаю, что это как-то связано с вращением, помещающим новый вид сверху (вид, который игнорирует UITraitCollection вызов).

Я подкласс SFSafariViewController а также UITabBarControllerпри попытке вызвать метод выше, когда это возможно, чтобы остановить панель вкладок по умолчанию - однако у меня нет успеха.

ПРИМЕЧАНИЕ: я получаю[App] if we're in the real pre-commit handler we can't actually add any new fences due to CA restrictionОшибка при вращении - если это поможет.

Благодарю вас.

1 ответ

Решение

Я решил эту проблему, внедрив приведенный ниже фрагмент в мой UINavigationController,

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

Надеюсь, что это поможет кому-то еще с проблемой!

Другие вопросы по тегам