Загадочная неполадка с навигационными панелями на iPhone! - PullRequest
0 голосов
/ 24 ноября 2011

Я делаю приложение с контроллерами навигации с помощью раскадровки в Xcode 4.2 .

Я хочу скрыть все панели навигации, когда каждое представление загружено и нажатием кнопки, котораяв верхней части экрана панель навигации должна отображаться в течение нескольких секунд (для этого я использовал NStimer), а затем снова скрываться.

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

Вот мой код:

-(void)viewDidLoad
{
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

-(IBAction)top {
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    hideNavTimer = [NSTimer scheduledTimerWithTimeInterval:3
    target:self selector:@selector (HideNav)     userInfo:nil repeats:NO];
}

-(void)HideNav {
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    [hideNavTimer invalidate];
    hideNavTimer=nil;
}

Я использую этот код в каждом представлении, которое я нажимаю.

Что я делаю не так?

1 Ответ

2 голосов
/ 24 ноября 2011

Вы должны положить его в поле зренияWillAppear:

-(void)viewWillAppear:(BOOL)animated:
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}
...