问题标签 [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 投票
1 回答
86 浏览

firebase - 如何通过读取环境对象来纠正此问题?(SwiftUI 并且在没有 SceneDelegate 的情况下工作)

我想为登录到 firebase 的应用程序编写一个模板,以便我可以在未来的项目中使用它。我遵循了 YouTube 上的在线教程: https ://www.youtube.com/watch?v=DotGrYBfCuQ&list=PLBn01m5Vbs4B79bOmI3FL_MFxjXVuDrma&index=2

所以我面临的问题是,在视频中,变量 userInfo 在 SceneDelegate 中被实例化,从而允许 YouTube 上的编码人员在其代码中引用 userInfo。我尝试在 AppDelegate 和 App Struct 中做同样的事情。无济于事。

这是 App Struct 中的代码:

我认为问题出在这里,但是我会发布我的其余代码以防我错了:

初始视图:

这是用户数据:

在此先感谢您的帮助,我真的很感激,所以谢谢!!!!

0 投票
1 回答
233 浏览

ios - 检测应用程序何时在 SwiftUI 2.0 中终止

我正在使用 Swift UI 2.0,目前的设置如下:

这很好,但是这些都不能说明应用程序终止的情况(即用户双击主页按钮并在应用程序上向上滑动)。我该如何解释这种情况?

我尝试未成功实施applicationWillTerminate(_:),因此我们将不胜感激任何指导。

谢谢!

0 投票
1 回答
45 浏览

swift - 从 SceneDelegate 实例化时如何获取完整的 viewController

所以在我的最后一个问题中,我试图从 AppDelegate 实例化,但它不起作用,所以在做了更多研究之后,我一直看到 SceneDelegate 并决定试一试。令我惊讶的是,它起作用了,但并不是我想要的那样。

这是登录时视图控制器的正常图像。 普通VC

不要介意空格,我在自动布局方面遇到了问题,这是我将来会解决的问题。SceneDelegate.swift我希望在使用按钮、导航栏、用户交互和正确显示的所有内容实例化 VC 时显示这个确切的图像。

现在,当我在方法中运行这段代码时SceneDelegate willConnectTo()......

我最终得到这个...

乱七八糟的VC

我真的很高兴看到它,因为我的代码终于可以工作了,但它没有显示带有栏按钮项目的导航栏,这有点粉碎了幸福。分段控件仍然是交互式的,并且 tableview 仍然刷新,这很棒,但我只想要我的正常 VC,以便用户可以正常使用该应用程序并查看所有其他 UI。如果有人可以帮助解决这个问题,那对我来说将是一个很大的帮助。提前致谢。

0 投票
1 回答
49 浏览

swift - 从 SceneDelegate 获取 viewController 实例化的错误

所以我的目标是能够显示正确的 vc 而没有任何错误。这个问题实际上有多个错误。首先,显示代码块并首先解释它是有意义的,这样您就可以了解我正在谈论的内容。

在我的SceneDelegate.swift willConnectTo()方法中,我有这段代码......

所以在我的应用程序中,我有两种类型的用户,并且我使用了一些逻辑来实例化正确的 viewController。问题是这样的,假设我以学生身份登录,最小化模拟器窗口,然后重新运行模拟器,它显示错误的 vc,但是当我再次执行相同操作时,它显示正确的 vc。同样的事情也适用于其他用户。还有另一个错误,说用户已注销并且状态侦听器未激活,但是一旦我以学校用户身份登录,vcs 就会再次切换,但如果我重新运行模拟器,它显然会显示正确的 vc .

我在控制台中也遇到了这个错误,我查了一下,但我无法将我在其他问题中看到的内容应用到我的问题中。

错误

这是问题的 GIF。当我以学校用户身份登录时,您可以看到 vc 是如何出错的,但是当我最小化模拟器窗口并重新运行它时,会显示正确的 vc。只是想知道如何防止这种情况。谢谢

gif

0 投票
1 回答
226 浏览

ios - 在iOS上不调用sceneDidEnterBackground,swift

我正在使用协调器模式实现 iOS 应用程序,当应用程序进入后台时,我需要显示一些隐私屏幕。

在进入时,sceneWillEnterForeground()被调用。在进入后台时,sceneDidEnterBackground()不调用。我错过了什么?

0 投票
1 回答
46 浏览

swift - 从 fcm 推送通知实例化视图控制器

所以由于某种原因,从AppDelegate. 我有一个通知,UNNotificationAction我处理方法中的动作选择didReceiveResponse()

这是功能:

if当我在通知中选择操作时,语句中的代码块永远不会运行。起初,我强制展开所有内容,但我收到一条错误消息,提示 viewController 为 nil,现在当我运行并选择通知中的操作时,什么也没有发生。

viewController 怎么可能是 nil 呢?我遇到了类似的事情,并决定尝试一下SceneDelegate,它确实有效,但是有很多错误需要我最终修复。在这种情况下使用UISceneand是否比尝试实例化正确的 VC 更好?或者有解决办法吗?UIWindowSceneUIWindow

0 投票
1 回答
62 浏览

swift - 这个firestore关闭会导致内存泄漏吗?

所以我的目标是在实例化正确的 viewController 时解决这个条件问题。我有一个函数,我基本上用来根据用户的类型以及他们是否登录来将用户导航到正确的 viewController。

这是这个功能:

我也有类似这样的确切代码块,sceneDidEnterForeground用于推送通知。现在的问题是,当我第一次运行模拟器并启动应用程序时,会显示正确的 viewController,但是当我以学校用户身份注销并在同一个模拟器会话中以学校用户身份登录时,错误的 viewController(又名其他类型用户的视图控制器)出现。

并不是说这将是生产中的真实情况,学生用户只能访问学校用户的帐户并在同一个场景会话中像那样登录,但安全总比后悔好。所以这导致我问,这是内存泄漏还是完全不同的问题?

我也收到此错误:

不平衡误差

0 投票
0 回答
201 浏览

ios - 连接场景未出现在“UIApplication.shared.connectedScenes”中

我正在尝试向我的应用程序添加外部显示支持。该应用程序最初是使用 a 构建的AppDelegate,但我已将其迁移到使用 a SceneDelegate,因为我被告知它是 iOS 13 之后的外部显示支持所必需的。我更新了我的info.plist,既有SceneDelegate用于主应用程序的,也有ExtSceneDelegate用于外部的我在几个不同的教程中看到的显示。代表和 plist 更改都发布在下面。

Info.plist 添加

SceneDelegate.swift

ExtSceneDelegate.swift

在我的应用程序中,我想根据用户的活动更新外部显示器。为此,我像这样注册通知:

然后尝试设置连接的第二个显示器。

按原样运行代码时,由于ExtSceneDelegate. 但是,如果我尝试更改外部显示器上显示的内容,该setupScreen功能将找不到任何匹配的显示器。如果我在仅返回一个元素处设置断点let scenes = UIApplication.shared.connectedScenes,即使实际上连接了两个显示器。我这辈子都想不通。并会感谢任何帮助。

注意:我知道在这段代码中,我试图在ExtSceneDelegatesetupScreen函数中为外部显示器设置相同的视图。我知道如果它正在工作,我不会注意到任何可见的变化,但我知道代码没有被执行,即使我尝试将它设置为不同的视图,也没有任何反应。

0 投票
0 回答
18 浏览

swift - 是否可以为 SceneDelegate 中的通知调用 didReceiveResponse 方法

我的目标是让用户在点击通知操作时直接进入 viewController。我知道所有与配置有关的事情UIWindow都已UIScene移至场景委托。所以我didReceiveResponse在我的中添加了SceneDelegate作为扩展名。

我现在设置应用程序的方式是,当用户首次启动应用程序或终止应用程序并重新启动它时,他们会根据用户类型重定向到正确的 viewController。

我在willConnectTo()方法中这样做:

这很好用,我最初有它,sceneWillEnterForeground()但意识到如果他们要切换应用程序并回到他们正在做的事情,它会回到主屏幕,这会令人沮丧。因此,我对此的解决方案是将其放入willConnectTo,然后当收到通知时无论他们在做什么,他们都可以被引导到该主屏幕。

在我的didReceiveResponse,我有这段代码:

当我运行它并使用通知对其进行测试时,我认为这会起作用,但它最终只是转到应用程序进入后台时用户最后一次使用的 viewController。我尝试添加guard语句和其他代码行,就像我在willConnectTo(). 我有一个全局window变量和一个变量,storyboard所以这就是为什么函数没有错误地拾取它的原因,因为其他变量都在willConnectTo(). 为了完成这项工作,我是否缺少或需要删除某些东西,或者根本不可能在SceneDelegate?

0 投票
0 回答
109 浏览

ios - 在 Mac 催化剂上构建时,警报窗口位于模态表单屏幕下方

我想在模态屏幕顶部显示警报。最好的方法是在新的UIWindow. 我正在追逐的问题是该应用程序是为 mac 催化剂构建的。当演示样式为表单或页面表时,警报显示在模式屏幕下方。当演示风格为全屏时,一切正常。

顺便提一下,当应用程序是为 iOS 构建时,警报会正确显示。

这就是我创建新窗口的方式,并且在显示警报时我持有对 alertWindow 属性的强引用。

当演示样式为表单时,如何在模态屏幕顶部显示警报?