Проверьте строку состояния в iOS, скрытые с помощью регулятора модальное представление


Поэтому я использую шаблон "служебное приложение" в Xcode и у меня есть контроллер главного вида , где пользователь может скрыть и показать строку состояния с помощью кнопки. Я также получил - представление-контроллер обратная сторона, используя модальный переход, который имеет кнопку Готово, чтобы вернуться к Главная ВК. Я настроил его так, что при просмотре Flipside VC строка состояния всегда не скрыта. Это означает, что если пользователь скрывает строку состояния на Main VC и переходы к Flipside VC , он будет анимироваться, и если пользователь не скрыл строку состояния, и они переходят, ничего не происходит со строкой состояния.

Это все хорошо, Проблема в том, чтобы вернуться от Flipside VC К Main VC . Мне нужно условие для проверки скрытого состояния строки состояния в Main VC , которое вызывалось бы в Flipside VC при нажатии кнопки done.

Я также рассматривал возможность использования BOOL как NSNotificationCenter отправить сообщение на Flipside VC о состоянии строки состояния.

У меня был такой код:

-(BOOL)checkStatusBarHidden:(id)input
{
    BOOL result;

    if ([UIApplication sharedApplication].statusBarHidden = YES)
    {
        result = YES;
    }
    else
    {
        result = NO;
    }

    return result;
}

Но это все просто догадки и мысли, что я мог бы использовать его где-то, чтобы сообщить Flipside VC состояния строки состояния. Я подумал, может быть, изменить

[UIApplication sharedApplication].statusBarHidden = YES)

К чему-то вроде

self.statusBarHidden = YES //which of course isn't going to work
Но в любом случае, как я уже сказал, это предположение, и я не знаю, что делать.
1 4

1 ответ:

Вы можете подумать о хранении информации о состоянии строки состояния в MainViewController, используя свойство, например

В вашем MainViewController.h

@property (nonatomic, assign) BOOL statusBarHidden;

Тогда вы можете получить доступ к этому значению из FlipsideViewController, используя свойство presentingViewController.

В вашем FlipsideViewController.h

MainViewController * mainVC = self.presentingViewController;
if (mainVC.statusBarHidden) {
   // Do stuff
}

В качестве заключительного замечания, пожалуйста измените ваш метод checkStatusBarHidden: на что-то вроде

- (BOOL)checkStatusBarHidden {
    return [UIApplication sharedApplication].statusBarHidden;
}