IOS 7 - Скрыть строку состояния в определенном виде
Это довольно уникальный вопрос. Я искал часы и не мог найти ответ. Я хочу, чтобы ALL UIViewControllers
в моем приложении отображал UIStatusBar
. Но при некотором UIViewController
, когда вы нажимаете UIButton
, следующий метод вызывает контроллер камеры modalView. Я хочу скрыть строку состояния, когда вызывается следующий метод:
-(BOOL)startCameraControllerFromViewController:(UIViewController*)controller
usingDelegate:(id )delegate
Я попытался изменить файл plist с помощью строки состояния UIViewController
= YES (я хочу, чтобы UIStatusBar
скрывался при отключении этого модального вида)
Я также пробовал следующее в рамках вышеописанного метода:
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationNone];
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationNone];
Кажется, что ничего не работает. Может ли кто-нибудь помочь?
Ответы
Ответ 1
Решил его, подклассифицировав UIImagePickerController и просто добавив его в файл .m:
- (BOOL)prefersStatusBarHidden {
return YES;
}
затем импортируя его в класс, который использует сборщик, и вместо инициализации imagepicker я инициализирует подкласс.
ПРИМЕЧАНИЕ. Убедитесь, что вид панели управления на панели управления установлен в YES в вашем файле plist.
Ответ 2
Внедрите этот метод в свой контроллер просмотра,
-(BOOL)prefersStatusBarHidden
{
return YES;
}
и вызовите этот метод там, где хотите,
[self prefersStatusBarHidden];
Ответ 3
То, что вы можете сделать, также - установить строку состояния, скрытую в plist, как вы делали это раньше. Затем вы вызываете setStatusBarHidden: NO в делегате приложения, чтобы установить его как значение по умолчанию при первом загрузке приложения. И затем вы снова вызываете этот метод, когда вам нужно скрыть строку состояния со значением YES.
Ответ 4
Успешно использовали - (BOOL) prefersStatusBarHidden {...} для многочисленных контроллеров представлений, но он не отображался в определенном модальном представлении без навигационного контроллера. В соответствии с Karthika у меня был успех с Проверить строку состояния iOS, скрытую с помощью модального контроллера просмотров.
Ответ 5
-(void)viewWillApper:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
Этот код установит viewcontroller, который вы хотите скрыть строку состояния.