¿Cómo abrir un controller de vista específico desde Today Widget?

Estoy creando un widget simple hoy que contiene un button, este button debería – al presionarlo – abrir un controller de vista específico en mi aplicación correspondiente.

La única solución en la que pensé fue crear un tipo de URL que solo puede abrir el controller de vista inicial (al less, según mi conocimiento).

A continuación se muestra el código que estoy usando actualmente dentro de la acción UIButton:

var url = NSURL(string: "_my_url_://") extensionContext?.openURL(url!, completionHandler: nil) 

Puede crear un tipo de URL para su aplicación ( myapp:// ) y analizar la parte después del nombre de host. Por ejemplo, myapp://signupform o myapp://activities/15 . Tienes la flexibilidad de hacer esas URL lo que quieras. Realmente no puedes vincular types de URL a VC específicos (automáticamente), debes hacer el trabajo de leer la URL y cambiar los VC en el delegado de la aplicación.

Cuando haga esto, deberá analizar esta URL en su delegado de la aplicación. Recibirá una llamada en su delegado de la aplicación con la application:openURL:sourceApplication:annotation: método application:openURL:sourceApplication:annotation: ( docs ) cuando su aplicación se abre a través de una URL, y puede inspeccionar la URL para los artículos que necesite.

Basándote en mirar la URL, manipularás manualmente la stack de naves según el controller de vista que necesites mostrar. Por ejemplo, puede capturar un controller de vista desde su guión gráfico y agregarlo, o puede cambiar a una pestaña determinada en el controller de la barra de tabs, o puede retroceder todos los controlleres de vista actuales a la pantalla raíz antes de hacer algo . Lamentablemente, esas acciones no tienen una respuesta universal y todo depende de qué es exactamente lo que estás tratando de hacer.