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

ios - iOS应用程序空白navigationView在某些设备模拟器上打开屏幕,而不是在其他设备模拟器上

我使用 XCode 12.2 在 Swift 5 中编写了一个应用程序

该应用程序及其所有功能可在以下模拟器上运行:iPhone 8、iPhone SE 2nd Gen、iPhone 11 Pro、iPhone 12、iPhone 12 Pro 和 iPhone 12 Mini

所有 iPad、iPhone 8 plus、iPhone 11、iPhone 11 Pro Max 和 iPhone 12 Pro Max 都会出现此问题。

我不确定该怎么做,并且正在考虑提交错误报告/TSI,但我想确保我的设计没有明显的问题。

下面是我的内容视图的结构。我删除了一些我认为无关紧要的东西,以简明扼要地说明结构。我还附上了正确运行的初始视图与失败的视图的图像。正确打开屏幕问题打开屏幕。我还在真正的 iPhone SE 2nd gen 和 iPhone 8 上运行它,得到了相同的结果。提前致谢。

0 投票
2 回答
331 浏览

ios - 返回上一个视图后,SwiftUI NavigationLink 突出显示保持突出显示

我在 SwiftUI 中有一系列视图。一种是“菜单视图”,它由封装在 NavigationView 中的NavigationLinks列表组成

代码如下。

设置视图如下

最后,VoiceList视图如下:

我遇到的问题是,当应用程序从VoiceList视图返回到Settings视图时,NavigationLink仍然突出显示,就好像它仍然处于活动状态一样,如随附的屏幕截图所示。老实说,我不知道是什么原因造成的。非常感谢任何想法或见解。

在此处输入图像描述

0 投票
1 回答
214 浏览

swiftui - ios 13 SwiftUI向后导航时如何避免导航视图内的TabView应用崩溃

我在 NavigationView 中使用 TabView,但是当我尝试向后导航时我的应用程序崩溃,它在 AppDelegate 类中显示此错误消息“线程 1:EXC_BAD_ACCESS(代码 = 2,地址 = 0x16ad5bff0)”。在 ios 14 设备中它工作正常,但在 ios 13 上崩溃。我认为这是 ios 13 中的 navigationView 问题。我正在寻找 iOS 13 中的替代方案并避免崩溃。

PS:我使用的是 xcode 12。

0 投票
2 回答
440 浏览

swiftui - 使用 ToolbarItemGroup 时项目之间的空间太大

当我在 SwiftUI 中使用工具栏组时,元素之间的空间太大。我把它HStack放在iOS 13中,没关系。但是当我在 iOS 14 中将它与工具栏一起放置时,出现了问题。我怎样才能解决这个问题?

模拟器屏幕截图

0 投票
0 回答
258 浏览

swift - 通过 isActive 的 NavigationLink 推送被立即解除

我想在 SwiftUI 中初始化一个导航堆栈。因此,我想在第一个视图出现后立即推送第二个视图。因此,我想使用一个@State var,我将其设置为 true onAppear,从而激活 NavigationLink。

但是,该方法不起作用(未经修改,请参见下文)。推送完成,然后立即关闭第二个视图(视频)。这是我的示例(Github Repo):

输出:

如果我在延迟一分钟后修改 onAppear 以将 linkActive 设置为 true。0.5秒就可以了。这里有什么问题?我希望 SecondView 留在屏幕上,因为我不明白为什么 isActive 被改回 false。

0 投票
1 回答
945 浏览

macos - 如何在 swiftUI 生命周期中为三列视图添加工具栏分隔符

我正在寻找一种方法来实现像 Mail.app 这样的三列布局的工具栏。此外,Notes.app 使用几乎相同的工具栏,两个应用程序之间唯一重要的区别是 Notes.app 看起来像是WindowStylea HiddenTitleBarWindowStyle,而 Mail.app 看起来像 a Default|TitleBarWindowStyle

以下应该是正确的:

  1. 如果侧边栏被折叠,则有一个列表和详细信息视图
  2. 将列表与详细视图分开的分割线一直向上穿过工具栏。(这可以通过 a 来实现HiddenTitleBarWindowStyle侧边栏折叠 - 完全分割的视图
  3. 如果 Title 太长而无法放入导航列表,则垂直分割线将被打破:列表仍然像以前一样从 Detail View 中分割出来,但现在 Toolbar 看起来像一个DefaultWindowStyle只有一条小Divider()- 线的 Toolbar . 侧边栏折叠 - 分隔线

我需要哪种WindowStyle,WindowToolbarStyle和配置的组合来实现此设置?.toolbar

编辑

我注意到无法删除 Notes.app 显示的分隔线。不过,我还没有在文档中找到对任何此类元素的引用。

Notes.app 可自定义工具栏

代码示例

我已将问题提炼为一个简单的应用程序,其中大部分是工具栏内容。在我的原始代码中,我使用了两个嵌套NavigationView的 s,而对于示例,我只使用了一个NavigationView带有两个列表的。然而Toolbar结果是一样的。

工具栏DefaultWindowStyle

此示例将导致永远不会显示将整体分成两部分Toolbar的分隔线。Toolbar第一个ToolbarItem也位于Toolbar. 我尝试了所有ToolbarItemPlacement但没有一个导致项目移动到靠近标题的最左侧。

默认窗口样式

工具栏HiddenTitleBarWindowStyle

此示例将导致Toolbar始终显示全高分隔线。即使标题太长。因此GeometryReader添加了一个。这很好,直到侧边栏崩溃。的放置ToolbarItems将不正确。此外,在自定义时Toolbar,可能会删除标题,这应该是不可能的。

隐藏的标题栏窗口样式 带有折叠侧边栏的隐藏标题栏窗口样式

0 投票
0 回答
63 浏览

swiftui - 如何在 SwiftUI 中几秒钟后导航?

在 SwiftUI 和视图之间导航需要一些额外帮助。

在一个视图中,我有一个按钮ImagePicker

当用户选择或拍摄图像时,我想在关闭时显示一些微调器,直到图像被分类,然后导航并将此图像发送到另一个视图。

如何从loadImageAndNavigatefunc 导航到另一个视图?

0 投票
1 回答
57 浏览

ios - 在根据条件显示的两个视图上使用相同的 `navigationBarTitle` 和 `navigationBarItems`

我有一个视图,它显示Text视图以显示帮助文本,供用户点击加号图标以添加组。添加组后,它会显示List视图。要显示导航栏,我需要同时调用和navigationBarTitle查看。下面是我的代码片段。navigationBarItemsTextList

有没有办法只调用一次而不是同时调用navigationBarTitle和视图?navigationBarItemsTextList

0 投票
1 回答
172 浏览

swift - 更改导航按钮 SwiftUI 的颜色

如何将导航“后退按钮”(自动创建)的颜色更改为黑色,将 DisclosureGroup“雪佛龙”的颜色更改为另一种颜色?

在此处输入图像描述

我试过做.buttonStyle(PlainButtonStyle()).foregroundColor(.black)

0 投票
1 回答
290 浏览

ios - 删除空间 NavigationTitle 但不删除后退按钮

我想在不删除后退按钮的情况下删除 NavigationTitle 空间。

我已经尝试过这个:

但这也删除了后退按钮。