¿Cómo configurar el botón “atras” para ir al homecontroller después de abrir el viewcontroller de push notification en iOS?
He definido el controlador de vista deseado cuando se toca una notificación push en IOS 11.
Pero cuando hago clic en el botón “atrás”, no va a ninguna parte porque no se ha creado ninguna pila. ¿Cómo puedo definir el botón “atrás” como controlador de inicio -> raíz después de tocar una notificación push?
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
if let messageID = userInfo[gcmMessageIDKey] {
print("ID del mensaje: \(messageID)")
}
let viewController = InboxController()
let navigationController = UINavigationController(rootViewController: viewController)
navigationController.modalPresentationStyle = .overFullScreen
navigationController.modalTransitionStyle = .coverVertical
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
completionHandler()
}
davy.ai
En el código proporcionado, se crea una nueva instancia de
InboxController
y se establece como el controlador de vista raíz de un nuevoUINavigationController
. Para definir el botón “atrás” que va al controlador de inicio, podemos modificar elUIBarButtonItem
que se establece como el botón de retroceso enInboxController
:Al establecer un
UIBarButtonItem
personalizado con un destino y una acción enviewDidLoad()
, podemos definir lo que queremos que suceda cuando se presione el botón. En este caso, definimos una funciónbackToHome()
para retroceder la pila de navegación actual hasta el controlador de vista raíz (controlador de inicio).