Как сделать UIView, который может охватывать панель навигации?
Я хочу показать UIView
в полноэкранном режиме, но отобразить строку состояния, другие вещи, например, чтобы панель навигации была закрыта UIView
.
Как я могу это сделать?
Ответы
Ответ 1
Пострадав немного, чтобы полностью понять этот вопрос, но я думаю, вы спрашиваете, как вы можете отобразить UIView
над другим видом (так что представление с элементами управления навигации полностью скрыто во втором представлении)?
UIViewController
имеет:
- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
Было бы разумно, чтобы ваше второе представление управлялось с помощью UIViewController
. Для примера предположим, что ваше представление с помощью панели навигации управляется UINavigationViewController
, а вид, который вы хотите отобразить, управляется otherViewController
...
[navigationViewController presentModalViewController:otherViewController animated:YES];
Ответ 2
Я верю, что он спрашивал, как сделать UIView обложкой всего экрана (вроде как пользовательский всплывающий). Именно так я и оказался здесь. Поэтому я предлагаю свое решение. Вызовите эту функцию где угодно.
[self.navigationController.view addSubview:yourUIView];
Здесь представленное вами представление охватывает весь экран в отличие от
[self.view addSubview:yourUIView];
Таким образом, панель навигации не обнаружена.
Ответ 3
Добавьте представление в свой основной экземпляр UIWindow непосредственно в виде подвью.
Ответ 4
Я знаю, что OP искал способ полностью охватить навигационную панель, но вместо того, чтобы покрывать ее, вы могли бы просто скрыть ее. После скрытия вы можете добавить представление в качестве подвид и изменить его фрейм или ограничения, чтобы он занимал весь экран.
- (void)showViewOverNavBar:(UIView *)view {
[self.navigationController setNavigationBarHidden:YES];
[self.view addSubview:view];
}