Показать контроллер вида входа перед контроллером панели вкладок - PullRequest
0 голосов
/ 25 июля 2011

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

Может кто-нибудь объяснить, как это сделать с помощью фрагмента кода?

Ответы [ 5 ]

2 голосов
/ 25 июля 2011

Создайте новый класс LoginViewController. Когда ваше приложение запустится, добавьте представление в окно. Теперь, когда вход выполнен успешно, удалите его из суперпредставления и добавьте MainController

1 голос
/ 25 июля 2011

Создайте подкласс UITabBarController (хотя это не рекомендуется Apple), но для этого все должно быть в порядке и сделайте это в viewWillAppear

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    BOOL isLogged in = //do something to determine if you're logged in
    if(!loggedIn){
        LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewControllerNibHere" bundle:nil];
        [self presentModalViewController:loginViewController animated:YES]; //or NO if you don't want it animated
        [loginViewController release];
    }
}

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

0 голосов
/ 15 сентября 2015

Лучший способ сделать это - создать новый LoginViewController, как уже упоминали другие люди, а затем установить для rootviewController значение tabBarcontroller, как только вы аутентифицируете пользователя. Вот как вы можете сделать это в быстром, это фрагмент, чтобы поставить, как только вы аутентифицируете своего пользователя в LoginViewController

let tabBarController = self.storyboard?.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = tabBarController

Где TabBarController - идентификатор раскадровки вашего контроллера панели вкладок. Это может быть любое имя, которое вы ему дали.

0 голосов
/ 25 июля 2011

Проверьте исходный код этой ссылки,

он использует контроллер входа в качестве модального вида с 4 вкладками

http://code.google.com/p/tweetero/source/checkout

Также я попробовал этот способ,

в моем первом виде вкладок - в viewDidAppear - я проверю Login = YES, затем

покажет LoginController

- [self.tabbarcontroller presentMOdalViewcontroller:LoginView animated:YES];

, поэтому каждый раз, когда вы нажимаете на первую вкладку -если вам необходимо войти в систему, поставьте флажок - отметьте его и покажите вид входа в систему

Надеюсь, это поможет.

0 голосов
/ 25 июля 2011
  • Создайте новый подкласс UIViewController с пером, которое представляет ваш экран входа в систему (я буду называть его SignInViewController).
  • Откройте файл MainWindow.nib и добавьте новый UIViewController
  • Установите новый тип класса UIViewController в SignInViewController
  • Установите выход rootViewController UIWindow в новый SignInViewController
  • Теперь создайте новый файл пера и скопируйте в него существующий UITabBarController (лучше всего разбить)перья, а не одиночные мегабайты)
  • В вашем MainWindow.xib измените существующие атрибуты UITabBarController, указав только что созданное вами перо
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...