Строка состояния iOS7 UISplitViewController

Я пытаюсь добавить контроллер splitview в качестве дочернего контроллера представления. родительский контроллер представления является контроллером навигации. панель навигации скрыта для родительского контроллера представления, и я хотел показать строку состояния как стандарт iOS 6. Я добавил контроллер splitview в качестве дочернего контроллера представления, поскольку я хотел передать другой контроллер представления из контроллера splitview.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я добавляю контроллер splitview, строка состояния перекрывается с содержимым. установка edgeForExtendedLayout в UIRectEdgeNone для masterview, detailview, parentview, splitview, похоже, не работает.

Пожалуйста, дайте мне знать решение, которое я могу применить, чтобы предотвратить наложение содержимого в строке состояния и показывать строку состояния как стандарты ios 6.

Я попытался сделать это с MGSplitViewController, но столкнулся с той же проблемой.

Благодарю.

3 ответа

У меня точно такая же проблема, и я смог решить эту проблему. У меня есть UITabBarController в корне с различными UISplitViewController на каждой из первых двух вкладок. Для некоторых из моих видов детализации я перекрывал и панель навигации вверху, и панель вкладок внизу.

Я пробовал настройку edgesForExtendedLayout вначале также безуспешно, но оказывается, что вам нужно установить его как можно раньше, чтобы он имел эффект. Вы не указали в своем вопросе, где именно вы устанавливали свою собственность, поэтому я надеюсь, что это также поможет вам: edgesForExtendedLayout в UIRectEdgeNone в -viewDidLoad вашего UIViewController.

Это код, который исправил это для меня, в то время как ранее попытка сделать это в -viewWillLayoutSubviews не имел никакого эффекта вообще:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Prevent detail screen from sitting underneath navigation bar and tab bar:
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

Надеюсь это поможет...

Erik

Я думаю, что вы должны использовать родительский viewcontrollers, и ребенок с включенным контроллером навигации может вам помочь. Если это не так, попробуйте этот учебник. Это мне очень помогает, я надеюсь, что это может помочь и вам.

Когда ты сказал:

Я пытаюсь добавить контроллер разделения представления как дочерний контроллер представления.

Вы имеете в виду установку UISplitViewController в качестве rootViewController? Если нет, то это может быть причиной того, почему он ведет себя странно.

Однако UISplitViewControllers не предназначены для такой работы, смотрите этот ответ /questions/44362626/uisplitviewcontroller-i-slozhnaya-ierarhiya-predstavlenij/44362678#44362678

Я бы использовал контроллер представления контейнера для создания настраиваемого контроллера представления разделения: https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html

Множество хороших ссылок здесь: Примеры Контроллеров Контейнеров

Очевидно, немного раздражает необходимость воссоздавать его, но, по крайней мере, вы получаете полный контроль над его поведением.

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