在导航中使用视图控制器添加 3D 触摸动态快速操作
Posted
技术标签:
【中文标题】在导航中使用视图控制器添加 3D 触摸动态快速操作【英文标题】:Add 3D touch dynamic quick action with view controller inside navigation 【发布时间】:2016-08-05 17:50:32 【问题描述】:我想使用以下代码在我的应用中实现 3D 触摸快速操作:
func createQuickActions(application: UIApplication)
let shortcut1 = UIMutableApplicationShortcutItem(type: NSBundle.mainBundle().bundleIdentifier!+".CrearActividad", localizedTitle: "Actividad", localizedSubtitle: nil, icon: UIApplicationShortcutIcon.init(templateImageName: "iphone-3d-touch-checkbox"), userInfo: nil)
let shortcut2 = UIMutableApplicationShortcutItem(type: NSBundle.mainBundle().bundleIdentifier!+".CrearNota", localizedTitle: "Nota", localizedSubtitle: nil, icon: UIApplicationShortcutIcon.init(templateImageName: "iphone-3d-touch-notebook"), userInfo: nil)
let shortcut3 = UIMutableApplicationShortcutItem(type: NSBundle.mainBundle().bundleIdentifier!+".CrearReunion", localizedTitle: "Reunión", localizedSubtitle: nil, icon: UIApplicationShortcutIcon.init(templateImageName: "iphone-3d-touch-calendar"), userInfo: nil)
application.shortcutItems = [shortcut1,shortcut2,shortcut3]
按下快速操作按钮后,会出现相应的视图控制器,但没有导航栏(在我的故事板上,所有视图控制器都通过导航控制器连接)。 我的导航栏上有重要的按钮,那么如何使用可见的导航栏/导航控制器实例化和推送我的视图控制器?
【问题讨论】:
【参考方案1】:当应用程序通过 3D touch 打开时,调用 AppDelegate 中的以下方法。
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void)
//Navigate to required viewController after instantiating new navigation controller programatically
希望您在各自的视图控制器中以编程方式添加导航栏按钮。如果是这样,您可以在通过 3D Touch 快速操作访问时查看这些条形按钮。
【讨论】:
感谢您的回答,我使用了该方法,并且在根据所选的快捷方式项选择了要显示的 ViewController 之后,我在那里调用了window?.rootViewController?.showViewController
方法。以上是关于在导航中使用视图控制器添加 3D 触摸动态快速操作的主要内容,如果未能解决你的问题,请参考以下文章