Добавление UINavigationController в качестве подпредставления UIView

Я пытаюсь отобразить UILabel поверх UINavigationController. Проблема в том, что когда я добавляю UILabel в качестве подпредставления UIWindow, он не будет автоматически вращаться, поскольку он не является подпредставлением UIViewController (UIViewController автоматически обрабатывает обновление подпредставлений во время поворотов).

Это иерархия, которую я использовал:

UIWindowUILabelUINavigationController

Поэтому я подумал, что мог бы использовать следующую иерархию:

UIWindowUIViewControllerUIViewUILabelUINavigationController

Таким образом, метка может отображаться в верхней части панели UINavigationController, а также автоматически поворачиваться, поскольку она является подпредставлением UIViewController.

Проблема в том, что когда я пытаюсь добавить UINavigationController в качестве подпредставления представления:

[myViewController.view addSubview:myNavigationController.view];

он появится на 20 пикселей вниз. Я предполагаю, потому что он думает, что ему нужно освободить место для строки состояния. Но, поскольку UINavigationController размещается внутри UIView, который не перекрывает верхнюю часть строки состояния, он неправильно добавляет дополнительные 20 пикселей. Другими словами, верхняя часть UINavigationBar находится на отметке 40 пикселей на экране, а не на 20 пикселях.

Есть ли простой способ сдвинуть UINavigationController и все его элементы (например, панель навигации, панель инструментов, контроллер корневого представления) на 20 пикселей? Или дать ему понять, что он не должен компенсировать строку состояния?

Если нет, я думаю, мне нужно будет использовать мою первую иерархию, упомянутую выше, и выяснить, как повернуть метку, чтобы она соответствовала повороту навигационной панели. Где я могу найти больше информации о том, как это сделать?

Примечание: под «отображением метки в верхней части панели навигации» я имею в виду, что она должна накладываться поверх верхней панели навигации ... ее нельзя просто обернуть в элемент кнопки панели и поместить в качестве одного из элементов Панель навигации.

Ответы на вопрос(4)

Ваш ответ на вопрос