Строка состояния 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
Множество хороших ссылок здесь: Примеры Контроллеров Контейнеров
Очевидно, немного раздражает необходимость воссоздавать его, но, по крайней мере, вы получаете полный контроль над его поведением.