首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试通过3d触摸应用图标将VC从performActionFor shortcutItem嵌入到NavigationVC中

通过3D触摸应用图标将VC从performActionFor shortcutItem嵌入到NavigationVC中,可以通过以下步骤实现:

  1. 首先,确保你的应用已经启用了3D Touch功能,并且在Info.plist文件中添加了相应的配置。
  2. 在AppDelegate.swift文件中的application(_:performActionFor:completionHandler:)方法中,处理shortcutItem的点击事件。在该方法中,可以通过shortcutItem的type属性来判断用户点击的是哪个shortcutItem。
  3. 根据shortcutItem的type属性,创建对应的视图控制器(VC)。可以根据需要使用Storyboard或者手动创建VC。
  4. 创建NavigationVC,并将上一步创建的VC作为其根视图控制器。
  5. 在AppDelegate.swift文件中的application(_:didFinishLaunchingWithOptions:)方法中,判断应用是通过3D Touch快捷方式启动的。如果是,则将NavigationVC设置为根视图控制器。

下面是一个示例代码:

代码语言:swift
复制
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
    if shortcutItem.type == "com.example.shortcutItem1" {
        let vc = ViewController1() // 创建对应的视图控制器
        let navVC = UINavigationController(rootViewController: vc) // 创建NavigationVC,并将VC作为其根视图控制器
        window?.rootViewController = navVC // 将NavigationVC设置为根视图控制器
    } else if shortcutItem.type == "com.example.shortcutItem2" {
        let vc = ViewController2() // 创建对应的视图控制器
        let navVC = UINavigationController(rootViewController: vc) // 创建NavigationVC,并将VC作为其根视图控制器
        window?.rootViewController = navVC // 将NavigationVC设置为根视图控制器
    }
    
    completionHandler(true)
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    if let shortcutItem = launchOptions?[UIApplication.LaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem {
        if shortcutItem.type == "com.example.shortcutItem1" {
            let vc = ViewController1() // 创建对应的视图控制器
            let navVC = UINavigationController(rootViewController: vc) // 创建NavigationVC,并将VC作为其根视图控制器
            window?.rootViewController = navVC // 将NavigationVC设置为根视图控制器
        } else if shortcutItem.type == "com.example.shortcutItem2" {
            let vc = ViewController2() // 创建对应的视图控制器
            let navVC = UINavigationController(rootViewController: vc) // 创建NavigationVC,并将VC作为其根视图控制器
            window?.rootViewController = navVC // 将NavigationVC设置为根视图控制器
        }
    }
    
    return true
}

这样,当用户通过3D Touch点击应用图标上的shortcutItem时,对应的视图控制器将会被嵌入到NavigationVC中,并成为应用的当前界面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 跟着官方文档学习3D Touch

    在app外,用户按压主屏幕图标就可以立即访问应用程序所提供的功能。 在app内,用户按压视图就可以预览额外的新内容,体验快速访问的特性。...苹果的3D Touch分为两类,一类是app外,在主屏幕上按压app的图标,可以在app图标旁边弹出一个带有快捷操作项的菜单。...现在,拥有iPhone6s或者iPhone6s Plus的用户,除了可以进行以上的两个操作外,用户还可以通过按压iPhone6s或者iPhone6s Plus应用图标的方式,获得由一组快速操作按钮组成的菜单...他代表app’s bundle某个图标的路径或者代表image asset catalog某个图片的名字。这个图标会在标题显示之前预先显示出来。...UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location { //触摸点的坐标转化为

    6.4K50

    iOS9系列专题一——3D Touch 原

    新的触摸体验——iOS9的3D Touch 一、引言         在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,...第一部分的应用是我们可以通过3D手势,在主屏幕上的应用Icon处,直接进入应用的响应功能模块。...四、3D Touch的三大模块         在我们的app中使用3D Touch功能,主要分为以下三个模块: 1、Home Screen Quick Actions         通过主屏幕的应用...NS_AVAILABLE_IOS(9_0); 当我们通过标签进入app时,就会在appdelegate调用这样一个回调,我们可以获取shortcutItem的信息进行相关逻辑操作。...大家可以通过头文件相应的类和属性来了解他们,最后,如有疏漏和错误之处,欢迎指正。

    57620

    iOS 组件化-路由解耦思想 JLRoutes 实战篇(一)App内控制器跳转

    为什么要用路由来实现 VC 跳转 Router 能做的事情很多, 首先我们用它来解决棘手的控制器耦合关系,是一种非常有效的解决方案; 在 App 控制器跳转普遍分为 3 种, 模态跳转Modal(...Touch 指定跳转到某个控制器; App 之间跳转: URL Scheme, Universal Links方式; 可想而知 App 内不管是页面切换, 外部调用, 都会涉及控制器的跳转,...提高代码复用性: 每次控制器之间跳转和赋值等操作, 都需要重复性的 code 一次 (严重违背了: 可复用性原则) , 通过 JSDRouter 跳转和赋值等逻辑封装起来, 一次 code, 终生受用...关于控制器跳转 : 在触发 Router 时, 我们能拿到 Router 映射到的 Map, 获取到其 Class, 在通过 Class 来进行初始初始化实例, 这里通过对 UIViewController..., 传入的字典 Key 与 VC 属性不匹配导致一些 Bug, 添加一层 NSAssert,这样能在开发过程更快找到问题!

    1.5K20

    带有桌面和推荐软件的 Raspberry Pi OS免费下载

    ) * 错误修复 - gtk+3 - 禁用新的 GDK 触摸事件以启用在触摸屏上检测到双击 * 错误修复 - xrdp - 包括书虫版 xrdp 和 xorgxrdp 的反向移植,以通过 xrdp...* lxpanel 插件的图标处理代码现在对 lxpanel 通用 * 推荐软件添加了 4K 版本的树莓派壁纸 * Python 游戏和 Minecraft 推荐软件删除 - 两者都不兼容靶心...升级版本 3.3.6 * 更新了几个包的冰岛语和意大利语翻译 * piclone:移除应用程序在其他桌面的隐藏 *不可知论者:删除应用程序在其他桌面的隐藏 * rp-书架:...-03-04: * Thonny 升级版本 3.3.5 * SD 卡复印机与 NVMe 设备兼容;现在针对 GTK+3 工具包构建 * Raspberry Pi 配置的 Raspberry...Chromium 的第一次运行删除了用户反馈调查 * 推荐软件 - 现在允许多次安装和重新安装操作,而无需在每个操作之间关闭 * 错误修复 - 面板菜单图标选择对话框误导文件浏览器 - 图标现在必须在图标主题中

    2.1K20

    DIY掌上POS机,或许是最小的收银POS机了!

    本教程,我介绍一种第三方服务:奇迹码支付(http://pay.qj61.cn/login),它是一个独立开发者个人即时账收款平台,可以通过监测手机通知从而验证支付状态,验证支付成功之后,我们就可以...预期目标及功能 触摸键盘功能; 支付图标显示; 支付方式选择; 二维码生成; 网络状态反馈; 触摸震动反馈; 所用硬件 M5Core2 模块 ?...下面我们具体讨论自制结算终端的各个子功能是如何实现的。 触摸按键测试程序 我们想要使用触摸屏实现金额的输入以及支付方式的选择,离不开设计触摸按键。...本项目中,单色图标有 WiFi 图标以及货币的符号 ¥。 对于单色图标,可以通过取模软件 Image2Lcd 取模。...在反馈的数据当中,我们希望获取的是云端订单号,我们通过查询该订单号来获取是否支付成功,在这里我们通过 ArduinoJson 库对返回的数据进行分析,我们可以通过 ArduinoJson 助手(https

    2.1K10

    这个能感受压力和温度的软体机器人,未来可能帮你采摘水果

    该论文的第一作者,刚刚从SEAS毕业的博士研究生Ryan Truby表示,“我们的研究代表了软体机器人技术的基础性进步,我们的制造平台能够复杂的传感模式轻松集成柔性机器人系统。”...传感器集成软体机器人中一直都很困难,因为大多数传感器(如传统电子设备中使用的传感器)都是刚性的。...这项被称为嵌入3D打印的技术能够无缝且快速地多种功能和材料集成一个软体。 Lewis认为,“这项研究代表了嵌入3D打印的最新应用案例,而这是我们实验室率先推出的技术。”...他们嵌入多个接触式传感器,所以夹具可以感应到光线和深度触摸。...,阻碍设计选择的材料选择,Lewis实验室开发的技术有机会彻底改变机器人的创建方式,连续的过程脱离出来,用嵌入式传感器和执行器制造复杂的整体机器人。”

    61530

    简单了解下无障碍设计模式

    样式 布局 Material Design 的触摸目标指南使那些无法看到屏幕、或者运动不灵活的用户能够点击应用的元素。 触摸目标 触摸目标是屏幕应用户输入的部分。...层次和焦点 应用应该给用户反馈,并使用户了解他们在应用的位置。导航控件应该便于定位,且书写清晰易懂。视觉反馈(如标签、颜色和图标)和触摸反馈向用户显示了可用的 UI。...错误示例 当把重要的操作嵌入其他内容时,就不清楚什么是页面中最重要的元素。 焦点顺序 输入焦点应该按照视觉布局的顺序排列,屏幕顶部到底部。它应该最重要的项目最不重要的项目进行遍历。...测试和研究 遵循这些无障碍指南有助于提升应用的可访问性,但不能保证拥有一个完全可访问的体验。建议你也: 在打开各种无障碍技术的情况下,测试应用开始结束的完整的任务流程。...例如星形图标表示添加到心愿单的操作,则应用应该说出 “添加到心愿单” 或 “心愿单移除”。

    4.8K40

    Windows 11的这19个新功能,你都知道吗?

    4、Windows 剪贴板 Microsoft 正在重新设计 Windows 剪贴板面板,其中包含一个新面板,用于 GIF 和表情符号插入您的应用程序。...10、文件资源管理器布局更新 经典文件资源管理器的默认布局已更新,带有额外的填充以改善触摸屏体验。 如果你更喜欢旧的布局,微软添加了一个名为“使用紧凑模式”的新选项,可以文件夹视图选项访问。...11、设置更改文件类型 新的 Windows 设置应用程序最终改进“选择默认应用程序”菜单。...作为改造的一部分,您会在设置和控制面板等应用程序中注意新的 Segoe Fluent 图标。用于商店和开始菜单的 Segoe MDL2 资产包括带有圆角和统一外观的新图标设计。...当然,您仍然可以通过 Windows 11 开始菜单 Windows 搜索找到 PowerShell。作为这项工作的一部分,Microsoft 还将文件资源管理器移到了“开始”菜单的自己位置。

    3.2K20

    有“贝”而“莱” 强势围观 | PLC、运动控制和 HMI 集于一身 014

    通过POWERLINK与其他ETA灯光系统模块化。 • 紧凑的尺寸。...图4 硬件触摸屏型号 图5 软件触摸屏型号 5、根据硬件的型号,打开“PhysicalView”。...图17 连接 5、如果,AS的右下脚出现的是run状态,或者为红色说明硬件连成功,如果是offline状态,说明连接失败,可尝试重新连接。...图21 添加变量观察 4、Power值设为1(TRUE)在距离速度给值。 图22 给变量赋值 5、除了使用调试和程序控制电机,我们也可以使用触摸VC4控制电机。...在Toolbox中选择VisyalComponentsVC4,使其添加进Logical View,然后添加变量即可完成。 图23 软件配置 图24 实物效果展示 END

    51430

    Win11 的这 19 个新功能,你都用上了吗?

    4、Windows 剪贴板 Microsoft 正在重新设计 Windows 剪贴板面板,其中包含一个新面板,用于 GIF 和表情符号插入您的应用程序。...10、文件资源管理器布局更新 经典文件资源管理器的默认布局已更新,带有额外的填充以改善触摸屏体验。 如果你更喜欢旧的布局,微软添加了一个名为“使用紧凑模式”的新选项,可以文件夹视图选项访问。...11、设置更改文件类型 新的 Windows 设置应用程序最终改进“选择默认应用程序”菜单。...作为改造的一部分,您会在设置和控制面板等应用程序中注意新的 Segoe Fluent 图标。用于商店和开始菜单的 Segoe MDL2 资产包括带有圆角和统一外观的新图标设计。...当然,您仍然可以通过 Windows 11 开始菜单 Windows 搜索找到 PowerShell。作为这项工作的一部分,Microsoft 还将文件资源管理器移到了“开始”菜单的自己位置。

    23.2K30

    LVGL案例分享--手把手教你移植T113-i国产工业开发板

    本篇文章主要描述如何LVGL8.1移植创龙科技的T113-i的开发板上。...源码复制进lvgl目录下 lv_demos源码复制进lvgl目录下 lvgl复制lv_conf_template.hlvgl,并重命名为lv_conf.h lv_drivers复制lv_drv_conf_template.h...lvgl,并重命名为lv_drv_conf.h lv_demo复制lv_demo_conf_template.hlvgl,并重命名为lv_demo_conf.h lv_port_linux_frame_buffer...复制main.c和Makefilelvgl下 文件移植完之后,代码目录如下: 修改配置文件 修改lv_conf.h,此文件为lvgl的配置文件 使能lv_conf.h头文件,#if 0修改为#if...,路径设置成/dev/fb0,根据板子LCD的实际情况设置 使能鼠标或者触摸屏 修改lv_demo_conf.h,此文件为测试用例配置文件 使能修改lv_demo_conf.h头文件,#if 0修改为

    42901

    让你的应用完美适配平板

    当然现在很多项目已经在尝试单 Activity 的架构进行开发了,但如果应用使用多个 activity,就可以通过嵌入 activity 来适配 Pad 了。具体需要怎么做呢?...()MotionEvent.getHistoricalAxisValue()防止手掌误触大多数 Pad 都会尝试识别出用户何时手掌放到了触摸屏上,但系统并不总是能够做到这一点,有时可能会在操作系统识别出手掌误触之前向应用报告了触摸事件...注意:如需减少绘图和手写应用无关的手掌和手指误触事件,一种方法是提供相应的界面设置,用于停用通过触摸绘图的功能,在这种模式下仅使用触控笔事件来绘图。...用户希望能够在应用之间拖放项目,比如直接把桌面的文件拖拽应用,或者把应用的文件拖拽桌面,亦或者是照片、音乐等等,如果需要添加拖放的话,可以去看下官方拖放文档的说明进行操作,这里就不详细展开介绍了...打完收工本文屏幕适配到输入兼容性来说了下普通应用如何适配 Pad,有用的地方大家可以参考。当然如果能帮助大家,哪怕是一点也足够了。就这样。

    2K50

    最新iOS设计规范九|10大系统能力(System Capabilities)

    在三维环境,最好使用3D提示。例如,3D旋转指示器放置在对象周围比在2D叠加层显示基于文本的指令更直观。除非人们不响应上下文提示,否则请避免在3D上下文中显示文本叠加提示。 ?...中断结束后,先前放置的虚拟对象可能会出现在错误的实际位置。启用重新本地化后,ARKit会尝试使用新信息这些虚拟对象还原其原始的实际位置。 考虑使用系统提供的教练视图来帮助人们重新定位。...如果您的应用程序同时支持AR和非AR体验,则可以最大程度地减少干扰。避免中断的一种方法是非AR体验嵌入AR体验,这样人们就可以在不退出和重新进入AR的情况下处理任务。...例如: 应用程序的Dock图标拖到屏幕的一侧,以选择其当前窗口之一或创建一个新窗口 一个对象拖到屏幕的一侧,然后将其拖放到系统提供的放置目标上 触摸并按住主屏幕或Dock上的应用程序图标,在出现的上下文菜单中点击...人们可以在触摸并按住应用程序图标时获得可用的快速操作菜单(在3D Touch设备上,人们可以短暂按一下该图标以查看菜单)。例如,“邮件”包括打开收件箱或VIP邮箱,启动搜索并创建新消息的快速操作。

    4.3K20

    分享 63 个面向前端开发人员的开源项目工具

    我们可以通过 CDN 将其直接嵌入 HTML 页面,也可以通过 npm 为我们的 Web 项目安装它。...、社交网络链接... 13、Wrap SVG Online 地址:https://pavellaptev.github.io/warp-svg/ Wrap SVG Online 是一个应用程序,通过拖放我们的计算机上传的图像...通过库划分为许多不同的插件,这将使我们更容易优化,只为我们的网站添加必要的功能。...但是,今天它也可以通过以 SVG 样式格式化的图标用于许多其他项目。它将帮助我们通过 CSS 轻松设置图标样式,而不必担心损坏的图像。...我最喜欢它的是通过说明性示例信息可视化的能力。这也将使我们更容易吸收和享受学习编码。

    4K40

    CrystalDiffract for Mac(晶体结构分析软件)

    将它们与即时混合物创建相结合-并能够在同一窗口中加载观察的数据-您将为研究人员,教师和学生提供功能强大的工作台应用程序。...您可以操纵和重新缩放观察的数据,应用实时平滑和背景校正-然后使用创新的屏幕工具测量观察的图案。与模拟图案进行比较以检查纯度-或尝试进行相鉴定。...拖放混合物模拟CrystalDiffract允许您简单地通过模式拖放到混合物组来模拟多相混合物。您可以使用“参数列表”的“混合”滑块和文本控件实时调整混合成分。...多点触摸借助CrystalDiffract的触控板支持,缩放和滚动衍射图样变得轻而易举。只需“捏缩放”,然后滑动即可水平滚动或垂直缩放。...通过“直接可视化”链接,您可以通过单个菜单命令获取任何模拟的图案,并在CrystalMaker可视化其晶体结构。

    67120

    Qt开发-确认过眼神

    ,移动和嵌入式平台 其可扩展性从低端,单一用途的设备高端复杂的桌面应用程序或连接系统 世界一流的API,工具和文档,简化了应用程序和设备的创建 可维护性,稳定性和兼容性,可轻松维护大型代码库 拥有超过...保持健康和成长是在其他市场也要成长的先决条件 嵌入式和连接设备是Qt最大的增长点。触摸屏正越来越多地用于设备,但是这些设备的硬件价格承受着巨大压力。...低端芯片组,微控制器以及中小型触摸屏将在任何地方使用。这些设备的大多数具有相对简单的功能,但需要优美而流畅的用户界面。...2D和3D元素合并到一个用户界面是很常见的,增强现实和虚拟现实的用法也是如此 人工智能元素将在应用程序和设备更常用,Qt将用简单的方法来与它们集成 2、下一代QML 在过去的几年中,QML和Qt...应该完全有可能在编译时生成它们的大多数 支持QML编译为高效的C++和本机代码:通过强大的键入和更简单的查找规则,我们可以QML转换为高效的C++和本机代码,从而显着提高运行时性能 支持隐藏方法细节

    1.9K20

    View编程指南(二)

    一个window对象有几个职责: 它包含您的应用程序的可见内容。 它在触摸事件传递View和其他应用程序对象起着关键作用。...该window横跨设备的整个主屏幕,并在应用程序生命周期的早期应用程序的主要nib文件(或以编程方式创建)加载。...但是,您可以使用应用程序的window对象来执行几个与应用程序相关的任务: 使用window对象点和矩形转换为window的本地坐标系或window的本地坐标系进行转换。...重要提示:在Interface Builder创建window时,建议您在属性检查器启用“全屏启动”选项。如果此选项未启用且您的window小于目标设备的屏幕,则某些view不会接收触摸事件。...如果改造计划包括新的nib文件作为应用程序的主要nib文件,则还必须将应用程序的Info.plist文件的NSMainNibFile键设置为nib文件的名称。

    81010
    领券