问题标签 [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 回答
562 浏览

ios - 未调用 AppDelegate 的函数

我的一个应用程序有问题。我注意到,当应用程序在后台运行时,我的控制器仍在更新。原因是 AppDelegate 的方法没有被调用,我不知道为什么。

这是我的代码:

我尝试了以下方法:

  • 使用真实设备和模拟器。
  • 重新启动 Xcode,清理构建文件夹。
  • 清理开发人员文件夹
  • 不要使用扩展名。
  • 调试或发布方案

没有任何效果,这些方法仍然没有被调用,我想知道为什么?

0 投票
2 回答
1373 浏览

swift - 应用程序关闭时动态链接不起作用,仅在后台运行时

我一直在努力在我的应用中包含动态链接。我已对其进行了设置,以便可以正确生成和正确接收链接,但它们仅在应用程序打开并在后台运行时才有效。如果应用程序完全关闭,链接只会打开应用程序。即使我在 didFinishLaunchingWithOptions 方法中返回 TRUE,它看起来也没有调用 AppDelegate 中的 continueUserActivity 方法。我已经读到我应该在 didFinishLaunchingWithOptions 方法中获取传入的 URL,但是可用的答案不起作用并且已经过时,所以我希望有人会知道。

这是代码:

那么,这些天来,当应用程序冷启动时,如何才能正确打开链接呢?感谢所有帮助:)

编辑:我已经更新了我的应用程序以使用 SceneDelegate,这是所有其他答案的建议,但它仍然不起作用。如果在后台运行,它仍然会打开动态链接,否则不会打开它们。看起来没有任何链接被发送到应用程序。我找不到任何 userActivity、urlContexts 等。

继承人新的相关代码:

0 投票
0 回答
102 浏览

appdelegate - 在场景外配置 UIViewController(_:willConnectTo:options:) 然后将其设置为窗口 rootViewController 不起作用

我的意图是初始化视图控制器并将其设置为窗口 rootViewController,然后将视图控制器作为依赖项传递给 AppCoordinator,应用程序决定如何处理视图控制器(将其替换为入职场景或登录页面,甚至如果用户已经登录,则主屏幕。

问题是每当我这样做时,窗口似乎并没有恢复它的视图控制器,而是一个黑屏。

AppCoordinator.swift

如果我绕过 AppCoordinator 并在场景委托中设置所有内容,则屏幕会正确加载:

当我将视图控制器作为依赖项传递时,似乎有什么问题?顺便说一句,我不喜欢将窗口作为依赖项传递给被调用的协调器,尽管这可行,但我不喜欢它。

0 投票
1 回答
317 浏览

ios - 应用在后台 SwiftUI 中运行时修改启动视图?

我知道,在 SwiftUI 中,初始启动视图取决于场景委托。所以,有这样的事情:

我本质上是在告诉 Swift 打开 contentView 的 rootView,在这种情况下它等于 FirstView()。每次打开应用程序时都会运行它,假设它之前已关闭(即不在后台运行)

但是,如果应用程序在后台运行(即您只需在 iPad 上按一次主页按钮或其他任何东西),并且用户再次打开它,应用程序将记住用户上次进入的视图,并恢复该视图。有没有办法改变这种行为?我可以通过某种方式修改场景委托,以便当应用程序在后台运行并且用户打开应用程序时,视图将更改为特定视图?

谢谢。

0 投票
1 回答
387 浏览

ios - 如何使用 Objective-C 在 iOS 13 中获取 rootViewController?

我正在尝试rootViewController使用 Objective-C 在 iOS 13 中获取。我正在做这样的事情:

但是,当我尝试访问(获取)中的window属性时,出现以下错误:windowSceneDelegate.window =rootViewController

在转发类对象“UIWindowSceneDelegate”中找不到属性“窗口”

但是当我去定义时UIWindowSceneDelegate,我看到了一个window属性:

在此处输入图像描述

那么在 iOS 13 中使用 Objective-C 获取 rootViewController 的正确方法是什么?

0 投票
2 回答
741 浏览

ios - 检测何时在 SwiftUI 中从后台打开特定视图?

如果我有一个 SwiftUI 视图并将其放入后台(即在 iPhone 上点击一次主页按钮)然后再次重新打开它,我想触发一些操作。

我的第一个想法是利用

修饰符,但是,经过一些测试,这不适用于在后台后进入前台的视图。

似乎没有与 UIKit ViewWillAppear 等效的 SwiftUI。

我在想也许场景委托在这里很有用,因为它确实提供了以下功能:

但我不确定当视图从后台进入前景时,是否有一种有效的方法可以使用此函数来触发视图中的操作。

对此的任何想法将不胜感激。

0 投票
0 回答
104 浏览

ios13 - 如何将子视图添加到 UIWindow 场景 iOS 13

我创建了一个内部框架,它在 iOS 12 之前运行良好,因为我在窗口上添加了一个按钮(浮动按钮),以便它在整个应用程序中可见。

我创建了一个 UIWindow 类来添加一个按钮,检查下面的代码

在应用程序委托中,在 didfinishlaunchingwithoption 我使用共享实例调用

但是从 iOS 13 开始,由于引入了 UIWindowscene,应用程序上看不到按钮。

我需要帮助才能使用 UIWindowscene 在 iOS 13 中的应用程序窗口上添加浮动按钮。

注意:作为一种解决方法,我已经从我的项目中删除了场景并且它运行良好,但我需要更灵活的解决方案,可以在 iOS 13 及更高版本上使用。所以我只需要更新我的框架。

0 投票
1 回答
374 浏览

ios - 如何在 Scene Delegate 中的自动登录完成之前一直停留在启动屏幕上?

我试图在我的场景委托中自动登录后切换屏幕,一切正常,除了我的启动屏幕出现 10 毫秒,然后它转到我的 ViewController(初始视图控制器),然后它将屏幕切换到我希望它切换的屏幕至。我的目标是在我登录场景委托时始终显示启动屏幕,然后在登录完成后切换屏幕。这是我正在使用的代码

0 投票
2 回答
84 浏览

ios - 在 Scenedelgate 中设置视图控制器后 Xcode 11.5 IOS 13.5 黑屏

初学者警报:我正在使用 IOS 13.6 做 Swift 11.6。我是 Swift 的初学者,我正在尝试检查我的用户以前是否登录过。为此,我使用了用户默认值,这似乎工作正常。问题是当我在 Scenedelgate 中初始化我的视图控制器时,它似乎无法正常工作 - 我只得到一个黑屏。

另一个注意事项是我的主屏幕上有一个侧边菜单,所以我试图初始化 UINavigationController,然后是里面的 HomeViewController

这是我的场景委托代码:

编辑1:这是我的用户默认功能的样子:

编辑 2: 这是我的模拟器的外观

编辑 3: 这是我的视图控制器的外观

编辑4:所以这就是问题所在。我决定尝试以编程方式将主视图控制器设置为白色,这显然有效。那么让我感到困惑的是,我在 HomeViewController 和 SideMenuNavigationController 中都看不到任何内容。我放了一个按钮和一个标签,但它们没有出现。

感谢您提供的任何建议。我是一个完整的新手,所以我真的不知道我在做什么。任何帮助表示赞赏。

谢谢!

0 投票
1 回答
166 浏览

swift - Swift Scene Delegate 在首次启动时不运行代码

当使用 UTI 导入文件打开应用程序时,我有一个在场景委托中运行的代码。代码工作正常,但应用程序必须正在运行并加载视图控制器才能执行,我该怎么做才能在应用程序通过单击文件启动时运行代码?

SceneDelegate.swift