Можно ли изменить корневой вид tabBarItem, чтобы при нажатии вы переходили ко второму представлению в иерархии? - PullRequest
0 голосов
/ 16 августа 2010

В Obj-C / iOS.Наш дизайн пользовательского интерфейса требует начального экрана с вариантами регистрации или входа в систему.После выполнения любого из этих данных пользовательские данные сохраняются в телефоне и отображается вкладка BarController.Однако, нажав на вкладку внизу, вы вернетесь к экрану «войти или зарегистрироваться».Можно ли изменить контроллер корневого представления в иерархии tabBarItem?

Ответы [ 3 ]

2 голосов
/ 16 августа 2010

Что вам нужно сделать, так это установить UIViewController с именем «LoginViewController» в качестве корневого контроллера, но этот контроллер не имеет UITabBar, это просто контроллер с Login UIView.А также иметь свой UITabBarController со всем его набором контента, но не включать в себя Логин, просто имейте свой основной контент.

После входа в систему пользователь показывает UITabBarController с его содержимым.

-(void) LoginUser {
      // Load UITabBarController
      YourAppDelegate *app = (YourAppDelegate*)[[UIApplication sharedApplication] delegate]; 
      [app.window addSubview:aTabBarController.view];
}

где приложение - это ваш * делегат приложения.

1 голос
/ 16 августа 2010

Вы не можете изменить рут, но вы можете решить это несколькими способами. Возможно, самое простое в вашей проверке метода viewWillAppear, чтобы увидеть, вошел ли пользователь в систему, если это так, немедленно загрузить (используя контроллер навигации, модально или просто добавить subView в зависимости от структуры вашего приложения), обычное представление входа в систему без анимации, затем пользователь никогда не увидит, что это произошло. (Вы можете сделать это другим способом, загружать экран входа в систему, только если пользователь НЕ вошел в систему.)

0 голосов
/ 06 января 2013

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

Я создал свой журнал в виде модального представления, которое вызывается в ViewDidLoad основного контроллера представления приложения, если пользователь не вошел в систему:

if (isUserLoggedIn == NO) {
    [self performSegueWithIdentifier:@"logInUserModalSegue" sender:self];
} 

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

Когда пользователь нажимает кнопку «Войти», я проверяю учетные данные и затем отклоняю (или нет) модальный контроллер, как это:

if (logInStatus == YES) {
    [[self presentingViewController] dismissViewControllerAnimated:YES
                                                        completion:NO];
    } else {
    self.errorDisplay.text = @"Sorry, there was an error logging in.";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...