3D-Touch快速启动应用,并push到指定页面,我并不怎么用这个,昨天从朋友那听说无限压栈的问题,我才试了试,其实情况是这样的:以 企鹅 举例,
点击”扫一扫“,进入扫码页面,然后回到桌面,再次3D-Touch,点击”扫一扫“,进入扫码页面,如图:
然后我们pop到上一页,发现又是一个扫码页面,再pop才是主页面,我曹,这很尴尬,然后去试了试微信,美团外卖,支付宝。。。很多,没问题,我觉得可能不止企鹅一个APP,下面有一个解决方式:
思路:
快速启动后,在下面回调中,做一些判断,
1、如果要推出的vc所在的tab与当前tab的index不同,先切换tab;
2、如果当前的navigationVC下的topViewController不是rootVC,pop到rootVC;(注意:如果想快速进入时,可以看到push的动画,pop的animation要=true,如果想进入直接看到推出的页面,animation要=false)
3、如果要推出的vc与当前的navigationVC下的topViewController相同,不做任何操作;否则push;
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
}