Я пытаюсь отобразить UILabel поверх UINavigationController. Проблема в том, что когда я добавляю UILabel в качестве подпредставления UIWindow, он не будет автоматически вращаться, поскольку он не является подпредставлением UIViewController (UIViewController автоматически обрабатывает обновление подпредставлений во время поворотов).
Это иерархия, которую я использовал:
- UIWindow
- UILabel
- UINavigationController
Поэтому я подумал, что мог бы использовать следующую иерархию:
- UIWindow
- UIViewController
- UIView
- UILabel
- UINavigationController
Таким образом, метка может отображаться в верхней части панели UINavigationController, а также автоматически поворачиваться, поскольку она является подпредставлением UIViewController.
Проблема в том, что когда я пытаюсь добавить UINavigationController в качестве подпредставления представления:
[myViewController.view addSubview:myNavigationController.view];
появится 20 пикселей вниз. Я предполагаю, потому что он думает, что ему нужно освободить место для строки состояния. Но, поскольку UINavigationController размещается внутри UIView, который не перекрывает верхнюю часть строки состояния, он неправильно добавляет дополнительные 20 пикселей. Другими словами, верхняя часть UINavigationBar находится на отметке 40 пикселей на экране, а не на 20 пикселях.
Есть ли какой-нибудь простой способ просто сдвинуть UINavigationController и все его элементы (например, панель навигации, панель инструментов, контроллер корневого представления) на 20 пикселей? Или дать ему понять, что он не должен компенсировать строку состояния?
Если нет, я думаю, мне нужно будет использовать мою первую иерархию, упомянутую выше, и выяснить, как повернуть метку, чтобы она соответствовала повороту навигационной панели. Где я могу найти больше информации о том, как это сделать?
Примечание: под «отображением метки в верхней части панели навигации» я имею в виду, что она должна накладываться поверх панели навигации ... ее нельзя просто обернуть в элемент кнопки панели и поместить в качестве одной из элементы панели навигации.