Показать / Скрыть панель вкладок - PullRequest
3 голосов
/ 14 июля 2011

У всех есть проблемы, и я искал решение, но не смог их найти.Я работаю над приложением на основе панели вкладок.Проблема в том, что я хочу скрыть панель вкладок на первом экране, а затем показать ее на всех других экранах, которые отображаются после первого экрана.Может кто-нибудь, пожалуйста, дайте мне лучшее решение для этой проблемы?

Фактический сценарий - у меня есть экран, который является экраном входа в систему.Теперь я не хочу показывать панель вкладок здесь, так как панель вкладок будет отображаться, только если пользователь вошел в систему. Когда пользователь входит в систему, я хочу, чтобы панель вкладок отображалась с ее содержимым.

С наилучшими пожеланиями

Ответы [ 2 ]

5 голосов
/ 14 июля 2011

Если у вас есть контроллер панели вкладок в качестве rootController, вы можете использовать rootController.selectedIndex =0 для выбора 1-го элемента панели вкладок, rootController.selectedIndex =1; и т. Д.

Как только этот конкретный вид загружаетсяВы можете загрузить другие виды в массив, а затем добавить его к rootController.selectedIndex и reloadInputViews с анимацией.

Редактировать: (согласно комментариям)

Итак, у вас есть контроллер панели вкладок, и вы хотите показать введение и экран входа в систему при запуске приложения.Если вход выполнен успешно, вы хотите представить контроллер панели вкладок!Это можно сделать с помощью ModalViewControllers

  1. В ViewDidLoad представления, которое загружается первым (это ваша первая вкладка по умолчанию), добавьте

    //Declare Introduction Screen//
    
    IntroductionController *introductionController = [[IntroductionController alloc] initWithNibName:@"IntroductionController" bundle:[NSBundle mainBundle]];
    
    //Give a navigation screen for your introduction screen and set it to introduction screen
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:introductionController];
    
    navController.title = @"Introduction";
    navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:navController animated:NO];
    
  2. Теперь ваш начальный экран будет загружаться сразу после загрузки первой панели вкладок.Но загрузка происходит мгновенно, поэтому она не видна глазу пользователя.Теперь назовите свой Login View Controller как @class LoginController, создайте объект LoginViewController *lvc; и синтезируйте его.Теперь объявите LoginButton и в IBAction

    -(IBAction) loginAction: (id) sender{
    
     NSLog(@"I clicked Login");
    
     if (self.lvc ==nil){
        self.lvc = [[LoginController alloc] init ];
    
     }
    
     lvc.title = @"Login";
     [self.navigationController pushViewController: self.lvc animated:YES];
    
    
     }
    
  3. И в LoginViewController, если вход успешен, просто выполните

    [self dismissModalViewControllerAnimated:YES];
    
0 голосов
/ 14 июля 2011

создайте розетку для панели uitabbar, затем объявите ее скрытой на первом экране, затем создайте новую пустоту, НЕ ОТПРАВЛЯЕМУЮ, ЧТО ЭТО НЕ РАБОТАЕТ на первом экране, заставьте его сказать, скажем, скрыть. А внутри спрятать, положить код, говорящий ваш uitabbar.hidden = YES; затем, чтобы заставить его работать в другом представлении, запишите это в viewDidLoad:

 [(//first view*)[UIApplication sharedApplication].delegate //the void, in this case, hide];
...