簡體   English   中英

午餐后靜態3D Touch不顯示導航和標簽欄

[英]Static 3D Touch not showing navigation and tab bar after lunching

當我在主屏幕上按3D Touch時工作正常,但未顯示導航和標簽欄,如何使用3D Touch顯示導航和標簽欄? 應用程序啟動后,不知道如何覆蓋自定義點。 格拉西·米勒

class AppDelegate: UIResponder, UIApplicationDelegate {    
enum ShortcutIdentifier: String {
    case First
    case Second
    case Third
    case Fourth
    //Initializers
    init?(fullType: String) {
        guard let last = fullType.components(separatedBy: ".").last else { return nil }
        self.init(rawValue: last)
    }
    //Properties
    var type: String {
        return Bundle.main.bundleIdentifier! + ".\(self.rawValue)"
    }
}
var window: UIWindow?

/// Saved shortcut item used as a result of an app launch, used later when app is activated.
var launchedShortcutItem: UIApplicationShortcutItem?

func handleShortCutItem(_ shortcutItem: UIApplicationShortcutItem) -> Bool {
    var handled = false

    // Verify that the provided shortcutItem type is one handled by the application.
    guard ShortcutIdentifier(fullType: shortcutItem.type) != nil else { return false }

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

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    var vcc = UIViewController()

    switch (shortCutType) {
    case ShortcutIdentifier.First.type:
        vcc = storyboard.instantiateViewController(withIdentifier: "VC1")
        handled = true
        break
    case ShortcutIdentifier.Second.type:
        vcc = storyboard.instantiateViewController(withIdentifier: "VC2")
        handled = true
        break
    case ShortcutIdentifier.Third.type:
        vcc = storyboard.instantiateViewController(withIdentifier: "VC3")
        handled = true
        break
    case ShortcutIdentifier.Fourth.type:
        vcc = storyboard.instantiateViewController(withIdentifier: "VC4")
        handled = true
        break
    default:
        break
    }
    // Display the selected view controller
    self.window?.rootViewController?.present(vcc, animated: true, completion: nil)

    return handled
}
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
    let handledShortCutItem = handleShortCutItem(shortcutItem)

    completionHandler(handledShortCutItem)
}
func applicationDidBecomeActive(_ application: UIApplication) {
    guard launchedShortcutItem != nil else { return }

    //handleShortCutItem(shortcut)
    launchedShortcutItem = nil
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    // If a shortcut was launched, display its information and take the appropriate action
    if let shortcutItem = launchOptions?[UIApplicationLaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem {

        launchedShortcutItem = shortcutItem
    }
    return true
}

在此處輸入圖片說明

如何使用3D Touch顯示導航和標簽欄

與您在應用正常運行期間執行操作的方式相同。 您不應該對用戶按下快捷方式項(即您的self.window?.rootViewController?.present做一些特殊的事情, self.window?.rootViewController?.present這只是建立了一個臨時外觀。 您應該導航到快捷方式項所對應的實際應用程序的實際區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM