When a notification was clicked , it must be redirected to desired page in IOS

Application not running

When app is in closed state you should check for launch option in didFinishLaunchingWithOptions

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let storyBoard = UIStoryboard(name: "Main", bundle: nil)

    var viewController = UIViewController() 

    if (launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary) != nil {
        viewController = storyBoard.instantiateViewController(withIdentifier: "storyboardIdentifier") // user tap notification
    }else{
        viewController = storyBoard.instantiateViewController(withIdentifier: "storyboardIdentifier") // User not tap notificaiton
    }
    self.window?.rootViewController = viewController
    self.window?.makeKeyAndVisible()
}

Application in Foreground state Here you can redirect on specific viewcontroller

func userNotificationCenter(_ center: UNUserNotificationCenter,
                                didReceive response: UNNotificationResponse,
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        let userInfo = response.notification.request.content.userInfo

        // Print full message.
        print(userInfo)

        let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let presentViewController = storyBoard.instantiateViewController(withIdentifier: "storyboardIdentifier") as! YourViewController

        presentViewController.yourDict = userInfo //pass userInfo data to viewController
        self.present(presentViewController, animated: true, completion: nil)

        completionHandler()
    }
}

add this code inside didReceive Response method like that:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                                    didReceive response: UNNotificationResponse,
                                    withCompletionHandler completionHandler: @escaping () -> Void) {
    let userInfo = response.notification.request.content.userInfo
    // Print message ID.
    if let messageID = userInfo[gcmMessageIDKey] {
        print("Message ID: \(messageID)")
    }

    // Print full message.
    print(userInfo)
    
    let storyBoard: UIStoryboard = UIStoryboard(name: "yourStoryboardName", bundle: nil)
    let presentViewController = storyBoard.instantiateViewController(withIdentifier: "yourViewControllerStoryboardID") as! YourViewController
        
    presentViewController.yourDict = userInfo //pass userInfo data to viewController
    self.window?.rootViewController = presentViewController
    presentViewController.present(presentViewController, animated: true, completion: nil)

    completionHandler()
}