1

我正在尝试实现一个 3D 触摸命令,如果用户按下“新扫描”,则ProcessedImageViewController调用视图控制器。我已经设置了创建快速选项,但是当按下“新扫描”时Info.plist我无法实际调用。ProcessedImageViewController这是我的代码AppDelegate.swift

var launchedShortcutItem: UIApplicationShortcutItem?
    var window: UIWindow?
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        
        
        
        
        if let shortcutItem = launchOptions?[UIApplication.LaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem{
            launchedShortcutItem = shortcutItem
        }
      
        return true
    }
    
    func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
        completionHandler(handleShortcutItem(item: shortcutItem))
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        
        guard let shortcutItem = launchedShortcutItem else { return }
        //If there is any shortcutItem,that will be handled upon the app becomes active
        _ = handleShortcutItem(item: shortcutItem)
        //We make it nil after perfom/handle method call for that shortcutItem action
        launchedShortcutItem = nil
}
func handleShortcutItem(item: UIApplicationShortcutItem) -> Bool {
        var handled = false
        // Verify that the provided shortcutItem's type is one handled by the application.
        let mainStoryboard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
        var reqVC: UIViewController!
        reqVC = mainStoryboard.instantiateViewController(withIdentifier: "ProcessedImageViewController") as! ProcessedImageViewController
        handled = true
        if let homeVC = self.window?.rootViewController as? UINavigationController {
            homeVC.pushViewController(reqVC, animated: true)
        } else {
            return false
        }
        
        return handled
    }

当我尝试单击“快速操作”菜单中的“新扫描”时,我只会被带到根视图控制器(不是ProcessedImageViewController)。

4

0 回答 0