Добавление экрана входа в систему перед приложением Cocoa Touch Tab Bar для IOS
Автор вопроса: John BatdorfОтветов: 4
Все еще ломаю голову над вещами здесь. Я даже не близко, но в любом случае... У меня есть приложение TabBar, созданное из Xcode. Это работает. У меня есть три вкладки, которыми я умею манипулировать и т. д.
Я хотел бы поместить nib-файл входа в систему перед всем этим, требуя, чтобы пользователь ответил на (жестко запрограммированные на данный момент) имя пользователя и пароль. Если вы поняли это правильно, то визуализируйте часть вкладки, позволяя им щелкать мышью.
У меня есть другое приложение, которое я написал, которое выполняет часть имени пользователя и пароля, у меня возникли проблемы с извлечением логики оттуда и помещением ее перед частью TabApplication.
В контроллере просмотра входа в систему после аутентификации пользователя вы можете скрыть его следующим образом:
[self.parentViewController.view setHidden:YES];
что позволяет вам показать его снова, если у вас есть функция выхода из системы.
Ответ 2 · рейтинг 16 · Yuji
Стандартный способ следующий:
Упакуйте все, что связано с экраном входа в систему, в представление и подкласс UIViewController, который этим управляет.
Представьте это представление модально в делегате приложения в application:didFinishLaunchingWithOptions:, вызвав
LoginController*loginController= ... ; // create the view controller for the login screen
[self.tabController presentModalViewController:loginController animated:YES];
Таким образом, анимация между переходом и т. д. обрабатывается автоматически.
Вы можете закрыть его позже после успешного входа в систему. Это можно сделать изнутри LoginController с помощью
Однако мне часто нужно выполнить дополнительную настройку после входа в систему. Итак, я бы сначала сказал делегату приложения, что вход выполнен, а затем выполнил
из делегата приложения. Тогда я смогу выполнять там дополнительные задачи.
Чтобы связаться с делегатом приложения, я бы использовал NSNotification, но это может быть для вас немного сложно.
Один из способов, который может быть проще для понимания (но более уродлив, на мой вкус), - это определить метод, скажем, loginDone в делегате приложения. Затем внутри LoginViewController вы можете сделать
Если вы начинаете с приложения панели вкладок по умолчанию, вы можете сделать это следующим образом:
В MainWindow.xib создайте UIView, содержащий все, что вы хотите видеть на экране пароля.
Подключите все, что вам нужно, к IBOutlets в AppDelegate и напишите метод, который проверяет, действителен ли пароль.
В методе applicationDidFinishLaunching замените [window addSubview:tabBarController.view]; на [window addSubview:/*whatever you called the view with the password stuff in it*/];
Если пользователь вводит правильный пароль, сделайте следующее: