ios - 检查是否使用 QuickAction 打开了 ViewController

标签 ios swift 3dtouch

如何检查我的 Swift 应用程序是否使用 QuickAction 打开?我正在寻找可以在 viewDidLoad 内部的解决方案。

例如

override func viewDidLoad() {
      if *VC was opened with a QuickAction* == true {
          // do this
       else {
          // do sth else
       }
}

感谢您的帮助!

最佳答案

当应用程序通过 3D touch 打开时,AppDelegate 中的以下方法被调用

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

//Navigate to required viewController from here
//YourViewController.isOpenedThrough3DTouch = true
}

您可以为所有 ViewController 创建一个基类并声明一个 bool 变量 isOpenedThrough3DTouch

AppDelegate 回调中将此变量设置为 true,其中启动了到所需 ViewController 的导航,因此您的 viewDidLoad 知道

关于ios - 检查是否使用 QuickAction 打开了 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698114/

相关文章:

objective-c - iOS:通讯录

ios - launchd_sim 崩溃 : could not create temporary state directory

cocoa - Swift 构建失败 : target might include it's own product

ios - 如何让我的 HeightAnchor 正常工作?

ios - UITouch Force on touchesBegan

ios - forceTouchCapability 返回零

ios - Swift:找不到接受提供参数的转换重载

ios - 如何使用定义宏 iOS

Swift 在 Storyboard 中设置 UIButton setBorderColor

ios - 如何以编程方式检查 iPhone 中可用的 3D Touch?