在watchOS中,是否可以显示没有导致根视图的状态栏按钮的视图?

时间:2019-08-24 07:05:41

标签: apple-watch swiftui watchos watchos-6

我想拥有与watchOS中内置的Workout应用类似的导航结构。我有一个网球规则格式列表,类似于“锻炼”应用程序中的锻炼类型。轻按一个将在新的接口控制器中开始匹配。据我所知,在WatchKit中,我只能推送一个接口控制器或提供一个接口控制器。两种方法都存在使用户冒着从左上方人字形提前取消匹配或轻敲所呈现的模态中的状态栏的风险。

锻炼在锻炼期间没有该限制,而是由用户在其基于页面的导航中切换页面来结束锻炼。 SwiftUI以其完整的watchOS应用程序开发方式来实现这一目标吗?

下面是健身应用的初始视图

enter image description here

选择锻炼时,将切换到无法点击左上角标题的屏幕,这就是我要完成的操作(初始视图完全隐藏,在三页之间滑动时不会显示)。

enter image description here

2 个答案:

答案 0 :(得分:1)

我认为您需要看看reloadRootPageControllers()

请参见https://developer.apple.com/documentation/watchkit/wkinterfacecontroller/2868441-reloadrootpagecontrollers

基本想法似乎是用此方法中列出的命名控制器替换当前的接口控制器。

WKInterfaceController.reloadRootPageControllers(withNames: ["workout","nowPlaying"], contexts: [workoutToRecord], orientation: WKPageOrientation.horizontal, pageIndex: 0)

在我的Interval Training应用程序中,一旦用户选择了锻炼方式,我就会调用此方法。然后此界面将替换为锻炼界面和正在播放的页面。

Workout Select Page

您会注意到,没有可让他们意外返回到锻炼选择屏幕的后退按钮。

Running Workout

希望有帮助。

答案 1 :(得分:1)

也许您需要使用以下方法修改视图:

gcc `pkg-config --cflags gtk+-3.0` main.c -o hello `pkg-config --libs gtk+-3.0` -lX11 -rdynamic

您尝试过吗?