ventanas tareas quitar inicio iconos funciona eliminar directo configurar cambiar barra anclados ancladas acceso ios xcode swift uitabbarcontroller

ios - tareas - quitar iconos anclados windows 10



Swift: cómo mostrar un controlador de la barra de pestañas después de una vista de inicio de sesión (4)

Dale a tu controlador de la barra de pestañas un StoryboardID (di "tabbar") y presiónalo como un UIViewController normal:

let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "tabbar") as! UIViewController self.navigationController?.pushViewController(nextViewController, animated: true)

He visto muchas publicaciones similares a esta aquí, pero todas son sobre Objective-C mientras estoy desarrollando mi aplicación en Swift. Como puede ver en la imagen, tengo una vista de pantalla de inicio de sesión y he implementado correctamente el mecanismo de inicio de sesión.

Ahora me gustaría que cuando el inicio de sesión haya tenido éxito, se muestre el controlador de la barra de pestañas. En mi controlador de vista de inicio de sesión tengo esta función para iniciar sesión:

var finalURL:NSString = "/(Settings.webServerLoginURL)?username=/(username)&password=/(password)" LoginService.requestLoginWithURL(NSURL(string: finalURL as String)!, completionHandler: { (success) -> Void in if (success) { NSLog("Login OK") /* Scarica dal database i tasks di LoggedUser.id */ /* Redirect al tab HOME dell''applicazione dove si mostrano il numero di task di quell''utente ed in cima "BENVENUTO: name surname" */ } else { self.alertView.title = "Autenticazione fallita!" self.alertView.message = "Username o passowrd." self.alertView.delegate = self self.alertView.addButtonWithTitle("OK") self.alertView.show() }

Así que creo que debería mostrar el controlador de la barra de pestañas después de

NSLog("Login OK")

pero no se como Soy un principiante de Swift / XCode ... si me puedes explicar. Gracias a todos los que han leído.


Me encontré con este mismo problema al intentar pasar de un controlador que usé para touchID a un TabBarController. Al hacer el segue en un bloque asíncrono resolví el problema.

dispatch_async(dispatch_get_main_queue(), { self.dismissViewControllerAnimated(false, completion: {}) self.performSegueWithIdentifier("authnToAppSegue", sender: nil) })


Para mostrar el controlador de la barra de pestañas desde la página de inicio de sesión, conecte la página de inicio de sesión y TabbarController con un segmento Mostrar y asigne un identificador en el inspector de atributos (Diga "mySegueIdentifier").

Para agregar segue, simplemente haga clic con el botón derecho y arrastre desde el controlador de vista de inicio de sesión a TabbarController.

En el inicio de sesión exitoso, simplemente puede llamar al método "performSegueWithIdentifier" de la siguiente manera

self.performSegueWithIdentifier("mySegueIdentifier", sender: nil)

En tu caso lo llamas después de esta línea.

NSLog("Login OK")

Si no desea navegar desde la página de inicio de sesión a TabbarController, también puede configurarlo como rootViewController después de un inicio de sesión exitoso. Para hacer esto, configure un identificador a TabbarController (Diga "myTabbarController")

let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate var initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("myTabbarControllerID") as! UIViewController appDelegate.window?.rootViewController = initialViewController appDelegate.window?.makeKeyAndVisible()

Editar:

Swift 3

let appDelegate = UIApplication.shared.delegate! as! AppDelegate let initialViewController = self.storyboard!.instantiateViewController(withIdentifier: "myTabbarControllerID") appDelegate.window?.rootViewController = initialViewController appDelegate.window?.makeKeyAndVisible()

Codificación feliz .. :)


func setTabBarVisible(visible:Bool, animated:Bool) { //* This cannot be called before viewDidLayoutSubviews(), because the frame is not set before this time // bail if the current state matches the desired state if (tabBarIsVisible() == visible) { return } // get a frame calculation ready let frame = self.tabBarController?.tabBar.frame let height = frame?.size.height let offsetY = (visible ? -height! : height) // zero duration means no animation let duration:NSTimeInterval = (animated ? 0.3 : 0.0) // animate the tabBar if frame != nil { UIView.animateWithDuration(duration) { self.tabBarController?.tabBar.frame = CGRectOffset(frame!, 0, offsetY!) return } } } func tabBarIsVisible() ->Bool { return self.tabBarController?.tabBar.frame.origin.y < CGRectGetMaxY(self.view.frame) } // Call the function from tap gesture recognizer added to your view (or button) @IBAction func tapped(sender: AnyObject) { setTabBarVisible(!tabBarIsVisible(), animated: true) }