2013-04-29 4 views
0

У меня есть два контроллера вида, которые выталкиваются контроллером навигации. Когда первый контроллер просмотра активен, таймер используется для скрытия строки состояния с анимацией (таймер вызывает метод, который внутренне скрывает строку состояния, вызывая [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]). Когда пользователь нажимает на представление, второй контроллер представления помещается в стек. Второй контроллер просмотра должен отображать строку состояния, чтобы панель навигации отображалась правильно. Иногда случается так, что, когда второй контроллер просмотра нажимается, строка состояния все еще анимируется, и я заканчиваю панель навигации, которая находится за пределами экрана (в основном, вид второго контроллера представления не показывает навигацию бар). Мне было интересно, есть ли способ остановить анимацию строки состояния до нажатия или если есть стандартный способ решить эту проблему.Строка состояния анимации, когда новый контроллер представления помещается в стек

+0

Вы должны размещать код, который вы используя для анимирования строки состояния. – rdelmar

ответ

0

Вы можете сохранить ссылку на ваш таймер:

myTimer *timer = [NSTimer scheduledTimer...]; 

затем аннулируют его, когда вы хотите, чтобы в строке состояния анимацию не бывает:

[myTimer invalidate]; 
myTimer = nil; 
+0

Спасибо, я не думаю, что это проблема таймера. На самом деле я уже делаю то, что вы предложили в viewWillDisappear из первого контроллера представления. Проблема заключается в том, что для скрытия строки состояния, которую я использую - '(void) setStatusBarHidden: (BOOL), скрытой с анимацией Animation: (UIStatusBarAnimation), и если анимация не завершена к тому моменту, когда второй контроллер представления находится поверх stack Я вижу проблему, которую я описывал. – Glauco

Смежные вопросы