Cómo pasar de un controlador de vista a otro controlador de vista usando el código al presionar un botón

Hay dos métodos en Cocoa para mostrar un VC,

  1. Preséntelo encima del VC actual
  2. Empújalo sobre la pila NavigationController.

La UIWindow principal que se le proporciona puede mostrar un solo VC o puede mostrar un NavigationController que tiene un solo VC raíz.

Para instancias de VC individuales, no tiene un controlador de navegación y, por lo tanto, debe presentar el nuevo VC sobre el anterior. Puede hacer esto solicitando su VC actual a presentViewController. Cuando haya terminado con este nuevo VC y descarte la llamada, volverá al VC que lo presentó.

Pero si su VC existe en una pila de controlador de navegación, puede insertar / abrir VC en el controlador de navegación, o también puede presentar nuevamente. Depende del tipo de UX que estés buscando.

Utilizo la presentación de VC para pantallas únicas que no forman parte del flujo de navegación. Es como abrir una nueva pestaña o ventana del navegador cuando haces clic en un enlace. Y uso NavigationController cuando quiero que el usuario sienta que está pasando por una serie de pantallas, que también pueden retroceder a lo largo de la pila, como el botón de retroceso en su navegador web.

Si desea presentar el controlador de vista en una pila de navegación, querrá crear una instancia del controlador de vista que va a presentar y luego llamar a self.navigationController.pushViewController (newVC, animado: verdadero / falso). De lo contrario, puede llamar a self.present (viewControllerToPresent: newVC, animado: verdadero / falso, finalización: nulo) para presentar una vista modal que tome el control total de la IU.

se hará con el método 1. Usando Segue 2. Usando StoryBoard ID

Vaya a StoryBoard Haga clic en el botón + Arrastre a otro controlador de vista y seleccione Mostrar (lo llamamos Segue)

Para StoryBoard ..

Crear acción de botón en acción Pegar este código

newViewController <- es cuando tengo navegar viewcontrollername

withIdetifier es nuevoViewController

let storyBoard: UIStoryboard = UIStoryboard (nombre: “Principal”, paquete: nulo)
let newViewController = storyBoard.instantiateViewController (withIdentifier: “newViewController”) como! NewViewController
self.present (newViewController, animado: verdadero, finalización: nulo)

DOne con Storyboard. Espero que sea de ayuda

Aquí está mi video para la navegación de una vista a otra en Objective c hindi, es ayudarlo

aquí hay un enlace

Gracias.

En el guión gráfico, controle + arrastre desde el icono amarillo en la parte superior del controlador de vista al otro controlador de vista y elija “Mostrar detalles”. Esto creará una transición desde el primer controlador de vista al segundo.

Haga clic en el segmento que acaba de crear y haga clic en el Inspector de atributos en la barra lateral derecha (tercer icono de la derecha) y dele un identificador, por ejemplo, screen1ToScreen2. En su código donde está creando el UIButton, agregue esta línea de código:

botón let = UIButton ();

button.addTarget (self, action: #selector (changeScreen), para: .touchUpInside);

Y cree esta función en el mismo archivo:

func changeScreen (botón: UIButton)
{
performSegue (withIdentifier: “screen1ToScreen2”, remitente: botón);
}

Actualmente estoy usando Swift 3, pero esto aún debería funcionar. Puede haber cambios menores de sintaxis, por ejemplo, el nombre de la función es performSegueWithIdentifier antes de Swift 3.

Hay dos métodos para lograr esto. Uno que usa la interfaz UIStoryboard que es relativamente simple y otro que es principalmente programático.

Método n. ° 1 (simple): en el archivo del guión gráfico, seleccione el botón que le gustaría presentar el segundo controlador de vista, haga clic con el botón derecho y arrastre (debería ver una línea que conecta el botón al cursor) al segundo controlador de vista. Déjalo ir. Acabas de crear un segue. Ahora, cuando toque ese botón, presentará automáticamente el controlador de vista.

Método # 2 (programático y un poco más difícil): en su guión gráfico, seleccione el controlador de vista que desea presentar. Abra el inspector de identidad en la vista Utilidades (vista derecha) y cambie la “ID del guión gráfico” a una etiqueta que describa su controlador de vista. Utilizaremos “viewController” en este caso. Ahora regrese al código de su ViewController que contiene el botón. Dentro de la acción del botón, escriba esto.

si deja storyboard = view.storyboard {
let newViewController = storyboard.instantiateViewController (withIdentifier: “viewController”)
self.present (newViewController, animado: verdadero, finalización: nulo)
}

Este código usa el guión gráfico para crear una instancia de ViewController que tenga el identificador que agregamos anteriormente. Luego, presenta ese ViewController sobre el ViewController actual.

¡Buena suerte y feliz codificación!

Tendrá que definir el método IBAction en ese botón y el código de ejecución de Seague se definirá. Deberá proporcionar un identificador para esa Seague en el guión gráfico.

Por ejemplo:

– Botón (IBAction) Presionado: remitente (id)

{

[self performSegueWithIdentifier: (@ ”nombre del identificador];

}

Esto puede lograrse de dos formas:

  1. Puede crear una instancia del nuevo controlador de vista al que desea navegar y empujar el controlador de vista a la pila de navegación de su controlador de vista actual. A continuación se muestra el código para lograr esto:

let newController = self.storyboard! .instantiateViewControllerWithIdentifier (“identificador”)
// el identificador anterior proviene del guión gráfico
self.navigationController! .pushViewController (newController, animado: verdadero)

2. Alternativamente, en storyboard puede conectar un segue (un segue push para ser exactos) desde el botón al controlador al que desea navegar. Eso es todo, no se necesita código. Cada vez que haga clic en el botón, el empuje segue se encargará de instanciar el controlador y empujarlo a la pila de navegación.

¡Espero que esto ayude!

Hay diferentes formas de presentar un controlador de vista, depende de la estructura de su aplicación y si está utilizando un controlador de navegación o no, ¿desea presionar el controlador de vista o presentarlo de manera modal? ¿Está utilizando el storyboard o no?

Aquí hay unos ejemplos

1- puedes empujarlo en la pila del controlador de navegación de esta manera

let vc = self.storyboard? .instantiateViewController (withIdentifier: “my_view_controller_id”) como! MyViewController

self.navigationController? .pushViewController (vc, animado: verdadero)

2- puedes presentarlo modalmente así

let vc = self.storyboard? .instantiateViewController (withIdentifier: “my_view_controller_id”) como! MyViewController

self.present (vc, animado: verdadero, finalización: nulo)

3- puedes crear un segue en storyboard y llamarlo desde el código

self.performSegue (withIdentifier: “segue_name”, remitente: self)