Abrir ViewController en AppDelagate manteniendo la barra de pestañas

En mi proyecto Xcode, cuando un usuario toca una notificación, primero quiero enviarla a un determinado elemento en mi tabBar, luego quiero crear una instancia de un controlador de vista y enviar un objeto a ese controlador de vista. Tengo el código que los envía a la barra de pestañas que quiero, pero no sé cómo instanciarlos al controlador de vista mientras mantengo la barra de pestañas y la barra de navegación conectadas al controlador de vista. Todas las respuestas sobre esto requieren que cambie el controlador de vista raíz y eso me hace perder la conexión con mi barra de pestañas y barra de navegación cuando se llama al controlador de vista.

Un ejemplo de la vida real de esto: El usuario recibe una notificación de Instagram que dice "John comenzó a seguirte" -> el usuario toca la notificación -> Instagram abre y muestra la pestaña de notificaciones -> envía rápidamente al usuario al perfil de "John" y cuando el usuario presiona el botón Atrás, los envía de regreso al pestaña de notificación

Debe saber: La razón por la que primero voy a cierta pestaña es para obtener el controlador de navegación de esa pestaña porque el controlador de vista al que voy no tiene uno.

Aquí está mi código de trabajo para enviar al usuario a la pestaña "notificaciones" (agregué comentarios para actuar como el ejemplo de Instagram para una mejor comprensión):

if let tabbarController = self.window!.rootViewController as? UITabBarController {
    tabbarController.selectedViewController = tabbarController.viewControllers?[3] //goes to notifications tab
    if type == "follow" { //someone started following current user                            
        //send to user's profile and send the user's id so the app can find all the information of the user                    
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta