Iphone: отображение панели вкладок и панели навигации после навигации - PullRequest
0 голосов
/ 22 сентября 2010

У меня есть UItabbarController и внутри первой вкладки UINavigationController. В конструкторе интерфейса я установил панель вкладок и панель навигации как скрытые.

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

Это то, чем я сейчас занимаюсь.

Первый UIViewController:

- (void)viewDidLoad {
    [super viewDidLoad];
    splashTime = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector (action) userInfo:nil repeats:NO];
}

-(void)action{
    SecondViewController *m = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    [self.navigationController pushViewController:m animated:YES]; 
}

Второй UIViewController:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        self.hidesBottomBarWhenPushed = NO;
        [self.navigationController setNavigationBarHidden:NO animated:YES];
    }
    return self;
}

Но на самом деле ничего не происходит. Ни панель вкладок, ни панель навигации не отображаются.

1 Ответ

1 голос
/ 22 сентября 2010

Попробуйте поместить код для вашего второго элемента Contoller в метод viewWillAppear вместо метода initWithNibName и посмотрите, имеет ли это желаемый результат:

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

Таким образом, он должен вызываться каждый раз, когда представление будет отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...