Итак, у меня есть приложение iOS, построенное на сервере Parse. Я установил UITabBarController
в AppDelegate
, и это работает правильно.Вызовите делегата TabBarController из View Controller - Swift
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var tabBarController: UITabBarController?
var array: [AnyObject] = []
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("1040205491TFSDJT43T49T349F3I4T3J")
var navigationBarAppearance = UINavigationBar.appearance()
navigationBarAppearance.tintColor = uicolorFromHex(0xffffff)
navigationBarAppearance.barTintColor = uicolorFromHex(0x4183D7)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.whiteColor()]
navigationBarAppearance.titleTextAttributes = titleDict
//navigationBarAppearance.clipsToBounds = true;
let tabBarController = UITabBarController()
let storyboard = UIStoryboard(name: "Storyboard", bundle: nil)
let myVC2 = storyboard.instantiateViewControllerWithIdentifier("navProfile") as UIViewController
let myVC1 = storyboard.instantiateViewControllerWithIdentifier("navigation") as UIViewController
let myVC3 = storyboard.instantiateViewControllerWithIdentifier("navComp") as UIViewController
var controllers = [myVC1,myVC3]
tabBarController.viewControllers = controllers
self.window?.rootViewController = tabBarController
var query = PFUser.query()
return true
}
Однако мое приложение использует логин и когда пользователь входит в систему, я хочу отобразить контроллер панели вкладок. Это мой Логин контроллер
@IBAction func SignIn(sender: AnyObject) {
LoginViewController().showActivityIndicator(self.view)
PFUser.logInWithUsernameInBackground(UsernameTextField.text,password: PasswordTextField.text){
(user:PFUser!, error:NSError!)->Void in
if user != nil{
println("Login successfull")
let storyboard = UIStoryboard(name: "Storyboard", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("navigation") as UIViewController
self.presentViewController(vc, animated: false, completion: nil);
вид Однако это ссылки на UINavigationController
с идентификатором «навигация» Есть ли способ отправить идентификатор раскадровки для контроллера панели вкладок, созданной в Appdelegate
или каким-то образом создать экземпляр с точки зрения
Если вы используете раскадровку, почему вы создаете контроллер панели вкладок и его детей в AppDelegate? Создайте их все в раскадровке. – rdelmar
Мне нужно, чтобы контроллеры выбирались в соответствии с состоянием пользователя. Например, если зарегистрированный пользователь является учеником, тогда отображаются myVC1 и myVC2, если отображается его Работодатель, тогда myVC1 и 3. Этот код отсутствует выше, чтобы сделать его более понятным. – Sunny17