问题标签 [uihostingcontroller]

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 回答
1362 浏览

swiftui - 如何从 Viewcontroller 中关闭 swiftUI?

在我的 viewController 我有这个功能

其中呈现以下 SwiftUIView。

Q 按下 CustomButton 时如何关闭 SwiftUIView?

0 投票
2 回答
5171 浏览

swift - 将 SwiftUI 视图添加到 UITableViewCell contentView

我目前正在尝试在 UIViewControllerRepresentable 中实现 UITableViewController,其中单元格的内容再次是 SwiftUI 视图。我不能使用 SwiftUI 列表,因为我想稍后添加 UISearchController。
因为我希望能够将自定义 SwiftUI 视图作为每个单元格的内容,所以我不可能在单元格内没有 SwiftUI 视图的情况下做到这一点。
我当前不起作用的代码如下所示:

当我运行它时,例如使用此预览设置:

我只看到一个带有 4 个明显空单元格的 TableView。不过,在视图层次结构调试器中,我可以看到,每个单元格确实都有带有 Text 的 NavigationLink 作为子视图,它只是不可见。因此我认为,这与将 UIHostingController 添加为 UITableViewController 的子级有关,但我只是不知道应该在哪里添加它。
目前有没有办法做到这一点?

0 投票
5 回答
6392 浏览

ios - UIHostingController 应该扩展以适应内容

我有一个自定义UIViewControllerRepresentable(与布局相关的代码如下所示)。这试图复制本机 SwiftUI ScrollView,除了它从底部滚动,除了顶部。

查看层次结构

当视图初始化时,这一切都按预期工作。宿主视图填充了它的内容,并且约束确保滚动视图的contentSize设置正确。

但是,当托管视图的内容发生更改时,hostingController.view不会调整大小以适应其内容。

Xcode 中从应用程序捕获的 UI 屏幕截图。 显示宿主控制器的内容在宿主视图本身的边界之后扩展,而没有正确调整大小。

绿色:正如预期的那样,滚动视图与宿主视图控制器的大小相匹配。

蓝色:托管视图本身。它保持第一次加载时的大小,并且不会按应有的方式扩展。

红色:托管视图中的堆栈视图。在此屏幕截图中,内容被添加到堆栈中,使其扩展。结果,您可以看到大小的差异。

UIHostingController(蓝色)应该扩展以适应其内容(红色)。

滚动视图的内容大小没有明确设置,因为这是由自动布局处理的。

如果有帮助,约束代码如下所示。

0 投票
2 回答
100 浏览

swiftui - 如何制作一个按钮来关闭使用 UIHostingController/SwiftUI 呈现的视图?

我有一个相当广泛的项目,我从 UIKit 开始,现在我决定使用 SwiftUI 来制作一些简单的表单页面,但我需要在 SwiftUI 中创建一个按钮来关闭当前视图,该视图显示以下代码:

0 投票
0 回答
462 浏览

swift - 将 SwiftUI CalloutView 添加到 MapKit

如何为用 SwiftUI 编写的 MapKitAnnotations 添加自定义 calloutView?

我目前有这个代码:

协调器中的viewForAnnotation方法是重点,我认为我必须添加一些东西,但是什么?我没有使用 Storyboard 或任何东西,我只想在地图上的 SwiftUI 中自定义弹出窗口。我不太熟悉 UIKit,所以请尽可能对初学者友好地解释。谢谢!

0 投票
0 回答
563 浏览

ios - 如何从 AppDelegate 中找到 SwiftUI HostingController 的当前可见控制器?

我正在开发一个项目,其中初始屏幕在 SwiftUI 中,而进一步的流程在 UIKit 控制器中。我的问题是,当任何 appDelegate 函数(比如说 open:URL、performActionFor:shortcutItem)被触发时,我想知道visibleController屏幕上或导航堆栈的位置。UINavigationController

所以为此我尝试使用UIApplication.shared.windows.filter {$0.isKeyWindow}.first.rootViewController,但它给了我这样的东西<_TtGC7SwiftUI19UIHostingControllerGVS_15>。所以在这里我没有得到 theUINavigationController或 current visibleController

所以关于如何获得UINavigationController或可见UIViewControllerNavigationStack的任何想法。

提前致谢!

0 投票
1 回答
172 浏览

ios - 如何从 SwiftUI 视图转到 UIKit TabViewController?

我想知道如何从 SwiftUI 视图转到作为选项卡栏控制器一部分的特定视图控制器。我想从 SwiftUI 视图转到作为 UIKit 视图控制器的 UITabBarController 中的特定索引。(让我们假设第一个索引) - 这可能吗?

0 投票
1 回答
762 浏览

uiviewcontroller - 我应该在 SwiftUI 中的 updateUIViewController(_:context:) 内调用 viewDidLoad()

我创建UIScrollView要集成到 SwiftUI 视图中。它包含UIHostingController托管 SwiftUI 视图。当我更新UIHostingController时,UIScrollView不会改变它的约束。我既不能滚动到顶部也不能滚动到底部。当我尝试调用viewDidLoad()insideupdateUIViewController(_:context:)时,它​​会像我预期的那样工作。这是我的示例代码,

我不认为这是一个好方法。我想知道是否有更新控制器的最佳方法。如果有人知道最好的解决方案,请分享我。谢谢。

0 投票
1 回答
1532 浏览

uicollectionview - 在 UIViewRepresentable CollectionView (Wrapped UICollectionView) 中为 UICollectionViewCell 使用 SwiftUI 视图

我必须用 a 替换现有SwiftUI List的视图UICollectionView(因为应用程序设计已更新,新设计对于 SwiftUI 来说非常复杂,因此必须作为自定义实现UICollectionViewFlowLayout

所以视图(现在将是(或一部分)UICollectionViewCell)已经在 SwiftUI 中实现,我不想在 Swift 中重新编写它们。该视图在编写布局代码方面很复杂,使用 SwiftUI 显然很容易。

我可以找到一些帮助来包装像这样的集合视图,但很少了解如何在 UICollectionViewCell 中托管现有的 swift ui 视图

任何帮助/建议/链接将不胜感激。

谢谢

0 投票
2 回答
103 浏览

swift - 在 Swift 中打开更多导航选项卡

我有一个UIHostingController包含我的 SwiftUI View。我想从UIHostingController.

我试着打电话

这是行不通的。我尝试更改选项卡栏的选择,但这当然永远不会转到更多选项卡。

我认为有一个简单的功能可以让它在我的视图中弹出,我只是找不到它。

编辑:为了进一步解释,我有一个带有几个ViewControllers. 一个是一个UIHostingController。也许这个细节并不重要,我正在尝试ViewController使用 Swift 打开“更多”项目的列表。虽然UIHostingController使用自定义导航,所以默认的后退按钮不相关。

更新:我找到的最接近的代码是:

然而,这似乎不起作用,而是通过调用下面的代码。我能够闪烁显示moreViewController。