问题标签 [uiscenedelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
19 浏览

ios - 从 SceneDelegate 推送模式时未加载变量

我正在尝试从 SceneDelegate 推送一个模式。在模态推送运行之前,这一切都很好。

我遇到了下面的错误,Xcode 说变量 imagePreview 和 DownloadURL 为零。是的,变量是从firebase加载的,就好像我打印它们一样。

2020-10-23 02:18:20.277808+0200 MyApp[30028:568894] 致命错误:在隐式展开可选值时意外发现 nil:文件 MyApp/DownloadViewController.swift,第 29 行

0 投票
1 回答
556 浏览

swift - 使用 URL 打开应用程序时将数据从场景委托传递到 ViewController

当应用程序在 Firebase 电子邮件验证期间通过 URL 动态链接启动时,我需要在我的初始控制器上显示一个视图并设置一个 UILabel。

我遇到的问题是标签未初始化,因此应用程序在此过程中崩溃。我尝试了很多方法,但在打开动态链接时无法让它显示我的视图并设置标签,即使应用程序已经打开也是如此。

场景代表

应用委托

视图控制器

自定义配置 NSObject 类

不确定还有什么其他方法会起作用。总而言之,在单击电子邮件中的动态链接后,我想在主 ViewController 上更改我的 UILabel,这是一个初始控制器。目前每种方法都会导致它崩溃,因为 UILabel 未设置,即使控制器已经初始化。

0 投票
0 回答
51 浏览

ios - iOS 14 基于文档的应用程序采用 SceneDelegate?

我最近正在开发一个新的基于文档的应用程序。传统的,到现在为止,官方模板是在 AppDelegate 中实例化一个 UIDocumentBrowser;以及基于文档的应用程序的官方建议使用文档浏览器作为根视图。

然而,作为 iOS 13 以来的多窗口引入了 Scene 并建议应用程序将视图生命周期相关代码迁移到 SceneDelegate。

因此,我想知道,在这种情况下,一个打算支持多窗口的基于应用程序的应用程序应该如何做。你的实际建议是什么?

0 投票
0 回答
365 浏览

ios - 使用 showBluetoothAccessoryPicker 会导致 SceneDelegate 出现错误

我目前有一个应用程序会尝试自动发现 MFi 蓝牙设备。

唯一的方法是使用ExternalAccessory框架,因为CoreBluetooth只有文件 Ble 设备。

现在我有一个执行的按钮:

为了让选择器出现,我需要var window: UIWindow?在我的AppDelegate

到目前为止,这有效。选择器显示,并将列出我要连接的设备。但是,当我尝试单击设备进行配对时,我收到以下消息:

这确实有道理。当前选择器正在显示,然后尝试显示另一个警报以验证引脚和配对。

但是,如果我删除 中的 Application Scene Manifest info.plist,删除SceneDelegate并删除 中的所有UISceneSession Lifecycle功能AppDelegate它就可以工作了..

问题是我需要 SceneDelegate,因为它是一个 swiftUI 应用程序,否则将无法运行。

有没有人遇到过这个问题?

0 投票
1 回答
162 浏览

swift - 来自调试器的消息:由于信号 9 而终止 - 有没有办法运行后台操作?

我注意到当我的应用程序在前台运行时,然后我通过向上滑动显式终止我的应用程序,然后调用 sceneDidDisconnect()。这太好了,这使我能够进行一些整理。

但是,当应用程序不再处于前台并且我明确终止应用程序时,不会调用此函数,并且我无法运行任何后台操作以释放资源等。有没有办法在此事件中运行后台操作?

0 投票
2 回答
96 浏览

swift - 在swift中,当应用程序进入后台时,如何使用依赖注入保存变量?

我有一个来自 Person 类的变量。我在 AppDelegate 中创建了这个变量,并将它注入到应用程序的任何地方。

我将其转换为 JSON,以保存它;我在应用程序启动时检索它。但是当应用程序进入后台时,我也需要保存它。我如何在 SceneDelegate 中检索此变量以保存它?

这是我的 appdelegate

0 投票
1 回答
68 浏览

objective-c - 以编程方式更改导航根视图目标 c

我想使用目标 c 以编程方式更改导航的根视图控制器。我正在使用故事板。我试图在应用程序内更改它的委托,但没有奏效,引入了一些新的东西,称为场景委托,我相信我可以从那里更改根目录,但我没有找到与此相关的资源。任何人都可以帮忙吗?

0 投票
1 回答
70 浏览

ios - 如何仅在 iOS 13.0 之前包含此快速声明

我的 AppDelegate.swift 文件中有以下声明。

并且我只想在部署目标设置为低于 iOS 13.0 时才包含它。我看过

属性,但我认为它不能做我想做的事。本质上,我希望能够在 AppDelegate.swift 和 SceneDelegate.swift 中对我的项目进行最少的更改,从而为 iOS 12 或 iOS 13 构建我的项目。我已经对 AppDelegate.swift 和 SceneDelegate.swift 进行了更改@available(iOS 13.0, *)#available(iOS 13.0, *)但是当部署目标高于 iOS 12 时,我仍然需要能够排除这个其他声明。

这是我的 AppDelegate.swift 文件:

这是我的 SceneDelegate.swift 文件:

基本上我想要的只是更改部署目标,并在构建过程中包含或排除适当的代码位。

0 投票
0 回答
103 浏览

ios - 为什么从 SceneDelegate 中的 performActionFor 调用时 viewController.navigationController 返回 nil?

我正在尝试创建一个快速操作,该操作将导航到我的选项卡栏 (vc1) 中的第二个视图控制器,然后调用一个将另一个视图控制器 (vc2) 推送到该视图控制器上的函数。Vc1 有一个名为 handleShowPopUp 的函数,其中包含以下代码:

当它被 vc1 上的一个按钮调用时,这个函数工作得很好。但是,当我尝试从我的 SceneDelegate 调用它以响应快速操作时,它什么也不做,而且我发现当 handleShowPopUp 尝试推送 vc2 时,它返回 nil。我尝试将导航控制器显式设置为 vc1,但即便如此它仍然返回 nil。我怎样才能解决这个问题?这是我的 SceneDelegate 代码:

0 投票
1 回答
113 浏览

ios - 我应该如何确定 UIKit 将打开哪个场景,以便我可以在正确的窗口中设置我的 UI?(iOS 13+)

背景

我有一个支持多个窗口(iPadOS 13+)的应用程序,我想知道响应用户点击通知的正确方法。我想根据用户点击的通知设置 UI。

UNUserNotificationCenterDelegate在这样的共享实例上设置属性UNUserNotificationCenter

我符合UNUserNotificationCenterDelegate并实现以下方法。当用户与通知交互时,总是会触发此方法:

在名为Targeting Content with Multiple Windows的会话中,Apple 解释说,当您的应用程序支持多个窗口时,系统将使用以下属性来帮助确定当用户点击通知时将向用户显示哪个窗口:

最终,UIKit 不会就响应用户点击通知而打开哪个场景(窗口)做出任何约定,但它会尽最大努力打开我targetContentIdentifier为通知指定的最匹配的场景(窗口)。

如果用户在我的应用程序终止时点击通知,那么当我调用以下函数时,SceneDelegate我将能够访问有关通知点击内部的信息SceneDelegate

如果我的应用程序未终止,则不会调用此函数。

问题

  • 我应该如何确定 UIKit 将打开哪个场景,以便我可以在正确的窗口中设置我的 UI?