问题标签 [ios-navigationview]

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 投票
2 回答
838 浏览

swift - 如何使用 UINavigationController 的 searchController 属性将 UISearchController 合并到 SwiftUI NavigationView 中?

我正在尝试创建一个 SwiftUI 视图,其中有一个包含自定义 MapView(包装 MKMapView)的 NavigationView,但是,成功率很低,我似乎无法将搜索控制器集成到 NavigationView 中,这与您很容易能够使用 UINavigationController。我尝试创建自己的自定义 NavigationView 并取得了一些成功,但我并不特别想重新创建该范围的某些内容以添加一项功能(除非这是唯一的解决方案)。

实际上,我主要想知道是否可以按照我的要求进行操作,或者这是否是我必须自己实现的,如果可以,怎么做?

谢谢!

这是我的自定义 UINavigationController 的代码,用于制作类似于 NavigationView 的内容。这可以工作并在导航栏中显示搜索栏,但它并不理想,我也不觉得它是最佳实践。

0 投票
2 回答
1373 浏览

navigation - SwiftUI NavigationLink 立即导航回来

我正在使用在 NavigationViewSwiftUI中创建从行到详细视图(类似于教程https://developer.apple.com/tutorials/swiftui/building-lists-and-navigationNavigationLinks中所做的)。但是,当我在我的应用程序中进行测试时,NavgiationLink 在被点击后会立即从详细视图导航回上一个视图(详细视图仅显示一秒钟)。

这是代码:

Query使用Realm:_

似乎这可能Results<Item>是从realm.objects(Item.self). 当我尝试使用静态数据let items = [Item(), Item()]然后调用ForEach(items) { ... }时,导航按预期工作。

0 投票
0 回答
295 浏览

swift - 如何在 swiftUI 中的父视图中运行

我需要一种方法来从子视图运行父视图中的函数,多级进入导航堆栈。

我想要类似于 Swift 早期版本中的以下代码的内容。

0 投票
1 回答
1080 浏览

ios - SwiftUI:在特定屏幕上隐藏导航栏

似乎我无法选择要在 swift UI 中隐藏导航栏的页面。

我有以下屏幕:

主要的

细节

要么我做错了(可能),要么苹果有一些工作要做(也可能)。

0 投票
1 回答
712 浏览

swiftui - 在 NavigationView 中的 SwiftUI 视图之间切换

今天我试图在 2 个不同的视图之间导航,但我想使用相同的视图来清理前一个视图中的信息。我创建了一个 MotherView 来调用 2 个不同的视图。这是我的代码

这是我的启动画面:

注意 SplashView() 是一个使用 Lottie 的动画视图,而 ContentView() 是我登录的一个视图。我想使用我的 SplashView() 启动我的应用程序,然后清理 VStack 并运行 ContentView()。

那可能吗?谢谢!

这是此代码的最后一次更新(我收到此错误:“参数类型'()'不符合预期的类型'视图'”)

0 投票
3 回答
1767 浏览

ios - SwiftUI 导航栏不会消失

我有一个NavigationView.navigationBarHidden(true)在我的SplashScreen. 在这里它没有正确显示,但是当我进入下一个屏幕时,会NavigationView出现该栏。如何正确隐藏导航栏?背景也无法正确显示。

看法

0 投票
1 回答
707 浏览

ios - 如果父项有更新,ObservedObject 无法在 NavigationLink 的目的地上工作

我有两个屏幕,一个主屏幕和一个详细信息,详细信息有一个 ObservedObject 有它的状态。我还想隐藏 master 上的导航栏并详细显示它。为此,我将导航栏隐藏状态作为主视图上的 @State 属性,并将其作为绑定变量发送回详细视图。

我遇到的问题是,每当我在详细信息屏幕中更新该变量时,ObservedObject 就会停止工作。

这是重现该问题的示例代码:

如果我保持原样,文本将不会更新为“工作”。如果我删除 line self.navigationBarHidden = false, ObservedObject 将正常工作并且文本将更新。

如何实现预期的行为,更新导航栏,同时保持观察到的对象正常工作?

0 投票
0 回答
744 浏览

ios - 如何阻止observedObject 更新SwiftUi 中的UI?

我正在使用带有 swiftUI 的导航视图。我的问题是,每当我使用 Navlink 转到另一个视图并且我的 navigationView 根的observedObject 发生变化时,我的界面也会返回到根视图。

所以我的问题是:当我导航到 navLink 时,有没有办法告诉导航视图的根节点的被观察对象停止更新 UI?

我的 navigationView 的根:listChatViewModel 是 Observable 对象,recentMessages 是 Published 属性

当我在 ChatView 中并且 recentMessages 属性更新时,这让我回到根视图

0 投票
1 回答
1461 浏览

ios - 当我的基于 SwiftUI 的应用程序以横向模式启动时,导航栏上的背景颜色未设置

我正在使用一个基于SwiftUI的应用程序,该应用程序依赖于NavigationView从屏幕转换。

我需要在导航栏上设置背景颜色,并且找到了大部分时间都可以使用的代码。

当应用程序以纵向模式启动时,一切都在旋转中正常工作。

但是,当应用程序以横向模式启动时,条形图默认为灰色,并且仅在第一次旋转后更新。

下面,我有最少的代码来重新创建我的问题:

以纵向模式启动时应用程序的显示方式:

在此处输入图像描述

...并旋转到横向...

在此处输入图像描述

最后,以横向模式启动时的外观。

在此处输入图像描述

我还注销了NavigationConfigurator,发现当它以纵向模式启动时,会拨打两个电话。第一个找不到导航控制器,但第二个找到了。

当我以横向模式启动时,只进行了一次调用,但未能找到它。旋转后,它会找到它并成功更新颜色。

我确实尝试通过@State管理强制重绘,但没有成功。

由于没有将应用程序锁定为纵向模式,我已经没有想法了。

0 投票
1 回答
1204 浏览

ios - SwiftUI - 在导航堆栈中弹回不会取消分配视图

我想首先突出我的视图层次结构。我只有FindUserViewWelcomeView

FindUserView如果输入的电子邮件存在,则用于从服务器检索用户。如果是这样,那么它会自动将我重定向到下一个WelcomeView我可以输入密码和登录的地方。

我在这里创建了一个 repo和一个视频SwiftUI - Pop back does not deallocate view

我的FindUserView:---------------------------- 和WelcomeView

在此处输入图像描述-----------------在此处输入图像描述

通过按下 NEXT 按钮,FindUserView我从数据库中获取用户:

我使用并通过更改上面的状态以NavigationView编程方式显示:WelcomeViewshowWelcomeView

现在我处于欢迎状态WelcomeView

但是当我按下这个按钮并弹回来时,我的WelcomeView仍然存在。

在此处输入图像描述

当我使用@EnvironmentObject可观察的属性状态时,我看到它如何反映到已经被忽略的视图中。这是正确的行为吗?还是我需要以WelcomeView某种方式解除分配?它会导致内存泄漏吗?

我有点担心,因为当您在导航堆栈中弹出视图控制器时,通过自动从数组中删除视图控制器来UIKit释放它。UINavigationController如何在 SwiftUI 中正确弹回?