3

是一种从快速操作中打开特定视图控制器的方法。我在 App Delegate 中有以下代码来打开特定的 View Controller。我的应用程序与 snapchat 应用程序具有相同的设计,即在滚动视图中嵌入了不同的视图控制器,我想针对特定的视图控制器,例如周日视图控制器。

想法是呈现从快速操作项中选择的第一、第二或第三项。

  func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {



 var handled = false


    guard ShortcutIdentifier(fullType: shortcutItem.type) != nil else {
        return false
    }

    guard let shortcutType = shortcutItem.type as String? else {
        return false
    }

    switch (shortcutType) {
    case ShortcutIdentifier.First.type:

        //Present the Add View Controller
        handled = true


        let mondayVC : MondayViewController = MondayViewController(nibName: "MondayViewController", bundle: nil)
        self.window?.rootViewController?.presentViewController(mondayVC, animated: true, completion: nil)

        break

    case ShortcutIdentifier.Second.type:

        //Present the View Controller related to this Screen
        handled = true

        let fridayVC : FridayViewController = FridayViewController(nibName: "FridayViewController", bundle: nil)
        self.window?.rootViewController?.presentViewController(fridayVC, animated: true, completion: nil)

        break

    case ShortcutIdentifier.Third.type:

        //Present the View Controller related to this Screen
        handled = true

        let sundayVC : SundayViewController = SundayViewController(nibName: "SundayViewController", bundle: nil)
        self.window?.rootViewController?.presentViewController(sundayVC, animated: true, completion: nil)

        break

    default:
        break
    }

    return handled

} 

运行此函数的添加委托代码是:

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {

        let handledShortcutItem = self.handleShortCutItem(shortcutItem)
        completionHandler(handledShortcutItem)
    }
4

0 回答 0