     }
 
     @available(iOS 9.0, *)
-    public func handle(viewController: UIViewController?, shortcutItem: UIApplicationShortcutItem) -> Bool {
-        return handle(viewController, shortcut: shortcutItem.toShortcut)
-    }
-
-    public func handle(viewController: UIViewController?, shortcut: Shortcut) -> Bool {
-        guard let viewController = viewController as? QuickActionSupport else { return false }
+    public func handle(actionHandler: QuickActionSupport?, shortcutItem: UIApplicationShortcutItem) -> Bool {
+        return handle(actionHandler, shortcut: shortcutItem.toShortcut)
+    }
+
+    public func handle(actionHandler: QuickActionSupport?, shortcut: Shortcut) -> Bool {
+        guard let viewController = actionHandler else { return false }
         if #available(iOS 9.0, *) {
             // FIXME: Can't use `shortcutType`: Segmentation fault: 11
             //let shortcutType = T.init(type: shortcut.type)

        }

        if #available(iOS 9.0, *), let shortcutItem = launchOptions?[UIApplicationLaunchOptionsShortcutItemKey] as? UIApplicationShortcutItem {
            handle(viewController, shortcutItem: shortcutItem)
        }
    }



    private let bundleIdentifier: String

    public init(_ application: UIApplication, actionHandler: QuickActionSupport?, bundleIdentifier: String, shortcuts: [Shortcut], launchOptions: NSDictionary? = nil) {
        self.bundleIdentifier = bundleIdentifier

        if #available(iOS 9.0, *) {
