privada navegacion inicio historial como cerrar boton borrar assistive app aplicaciones ios uinavigationcontroller swift3

navegacion - La acción del botón y la navegación no funcionan en viewcontroller en ios veloces



navegacion privada ios 12 (1)

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { self.window = UIWindow(frame:UIScreen.main.bounds) let homeVC = ConstDetailViewController(nibName: "ConstDetailViewController", bundle: nil) //homeVC.tabBarItem.title = "Home"; homeVC.tabBarItem.image = UIImage(named: "HomeRe.png") // Settings controller let settingsVC = LeaderboardViewController(nibName: "LeaderboardViewController", bundle: nil) settingsVC.tabBarItem.image = UIImage(named: "search3.png") let mapVC = MapViewViewController(nibName: "MapViewViewController", bundle: nil) mapVC.tabBarItem.image = UIImage(named: "graphRe.png") let userVC = UserProfileViewController(nibName: "UserProfileViewController", bundle: nil) userVC.tabBarItem.image = UIImage(named: "UserRe.png") self.tabBarController = UITabBarController() self.tabBarController!.setViewControllers([homeVC, settingsVC,mapVC,userVC], animated: false); let loginVC = ConstituencyViewController(nibName: "ConstituencyViewController", bundle: nil) self.window!.rootViewController = loginVC self.window!.makeKeyAndVisible()

Configuré el controlador tabbar en appdelegate. Pero ahora las acciones del botón y otras navegaciones no funcionan en mis controladores de visualización. ¿Cómo puedo configurar la navegación aquí? Por favor ayuda


Te muestro aquí paso a paso Puntos. Por favor, sigue eso-

Paso 1 - AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { let loginVC = LoginViewController() loginVC.title = "LoginViewController" let VC3Navigation = UINavigationController(rootViewController: loginVC) self.window! = UIWindow(frame: UIScreen.main.bounds) self.window!.backgroundColor = UIColor.white self.window?.rootViewController = VC3Navigation self.window!.makeKeyAndVisible() return true // Override point for customization after application launch. }

Paso 2 - Crear nuevo archivo de UITabBarController como:

import UIKit class TabbViewController: UITabBarController,UITabBarControllerDelegate { override func viewDidLoad() { super.viewDidLoad() delegate = self // Do any additional setup after loading the view. } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) let VC1 = ViewController() let VC1Navigation = UINavigationController(rootViewController: VC1) let icon1 = UITabBarItem(title: "Title", image: UIImage(named: "someImage.png"), selectedImage: UIImage(named: "otherImage.png")) VC1.tabBarItem = icon1 let VC2 = SecondViewController() let VC2Navigation = UINavigationController(rootViewController: VC2) let icon2 = UITabBarItem(title: "Title", image: UIImage(named: "someImage.png"), selectedImage: UIImage(named: "otherImage.png")) VC2.tabBarItem = icon2 let controllers = [VC1Navigation,VC2Navigation] //array of the root view controllers displayed by the tab bar interface self.viewControllers = controllers } //Delegate methods func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { print("Should select viewController: /(viewController.title) ?") return true; } }

Paso 3 : en ViewController, es decir, el primer elemento de la pestaña ¿Necesitas cosas?

import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = #colorLiteral(red: 0.9529411793, green: 0.6862745285, blue: 0.1333333403, alpha: 1) self.title = "item1" print("item 1 loaded") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

Paso4- De manera similar SecondViewController es decir, el segundo elemento de la pestaña

import UIKit class SecondViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.view.backgroundColor = #colorLiteral(red: 0.2196078449, green: 0.007843137719, blue: 0.8549019694, alpha: 1) self.title = "item2" print("item 1 loaded") let button = UIButton() button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 100, width: 50, height: 50)) button.backgroundColor = UIColor.red button.setTitle("Name your Button ", for: .normal) button.addTarget(self, action: #selector(button_Action), for: .touchUpInside) self.view.addSubview(button) func buttonAction(sender: UIButton!) { print("Button tapped") } // Do any additional setup after loading the view. } func button_Action() { let nextViewController = TabViewController(nibName: nil, bundle: nil) // and push it onto the ''navigation stack'' self.navigationController?.pushViewController(nextViewController, animated: true) }}

Paso 5: su inicio de sesión VC:

import UIKit class LoginViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = #colorLiteral(red: 0.4666666687, green: 0.7647058964, blue: 0.2666666806, alpha: 1) let button = UIButton() button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 100, width: 50, height: 50)) button.backgroundColor = UIColor.red button.setTitle("Name your Button ", for: .normal) button.addTarget(self, action: #selector(button_Action), for: .touchUpInside) self.view.addSubview(button) func buttonAction(sender: UIButton!) { print("Button tapped") } // Do any additional setup after loading the view. } func button_Action() { let nextViewController = TabbViewController(nibName: nil, bundle: nil) // and push it onto the ''navigation stack'' self.navigationController?.pushViewController(nextViewController, animated: true) }

Paso 6: otro controlador, es decir, abc, tengo el botón en SecondViewController para mostrar la navegación y la barra de pestañas para las subvistas. El botón empujará este controlador de vista.

import UIKit class TabViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.view.backgroundColor = #colorLiteral(red: 0.4745098054, green: 0.8392156959, blue: 0.9764705896, alpha: 1) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }