小编Rap*_*euf的帖子

SwiftUI:NavigationLink 在 WatchOS 8.1RC 的 Tabview 中立即弹出

我发现 watchOS 8.1RC 中存在从 TabView 触发的 NavigationLink 的回归。马上就被驳回了。

它在 watchOS 8.0 或模拟器 (watchOS 8.0) 中运行。你知道解决方法吗?谢谢

示例代码:

import SwiftUI

@main
struct TestNavigationApp: App {
    var body: some Scene {
        WindowGroup {
            NavigationView {
                ContentView()
            }
        }
    }
}

struct ContentView: View {
    var body: some View {
        List {
            NavigationLink(destination: ContentView1()) {
                Text("To TabView")
            }
        }
        
    }
}

struct ContentView1: View {
    var body: some View {
        TabView {
            NavigationView {
                NavigationLink(destination: ContentView2()) {
                    Text("To ContentView2")
                }
            }
            VStack {
                Text("Screen2") …
Run Code Online (Sandbox Code Playgroud)

apple-watch swiftui swiftui-navigationlink swiftui-tabview watchos-8

10
推荐指数
1
解决办法
971
查看次数

在 SwiftUI 中使用字符串插值进行本地化

我正在尝试本地化我的 SwiftUI Watch 应用程序。我对静态字符串没有任何问题。我在文本视图中使用 LocalizedKeyStrings 并在 Localizable.strings 文件中添加我的翻译。例如:

Text("history")
Run Code Online (Sandbox Code Playgroud)

在 Localizable.strings 中:

"history" = "Historique";
Run Code Online (Sandbox Code Playgroud)

结果:“历史”

但我也想使用插值来定位蜇伤。例如:

Text("startCustom \(format: "%.1f",customDistance)")
Run Code Online (Sandbox Code Playgroud)

在 Localizable.strings 中,我尝试了不同的语法:

"startCustom %@" = "Course de %@ km";
Run Code Online (Sandbox Code Playgroud)

或者

"startCustom %f" = "Course de %f km";
Run Code Online (Sandbox Code Playgroud)

或者

"startCustom %.1f" = "Course de %.1f km";
Run Code Online (Sandbox Code Playgroud)

什么都行不通。我没有找到任何文件...

localization swiftui

9
推荐指数
3
解决办法
4063
查看次数

HKWorkoutSessionDelegate:workoutSession(_:didGenerate:) 暂停检测问题

我正在为 Apple Watch 构建跑步锻炼项目,但在实现“自动暂停”功能时遇到问题。委托HKWorkoutSessionDelegate : workoutSession(_:didGenerate:)应该获取系统生成的一些暂停事件。

我遇到的问题是我的会话永远不会启动:暂停事件立即发送给委托。

我的代码:

func workoutSession(_ workoutSession: HKWorkoutSession, didGenerate event: HKWorkoutEvent) {
            // press 2 buttons
            if(event.type == HKWorkoutEventType.pauseOrResumeRequest) {
                print("Detected Press")
                if workoutData.isPaused == false {
                    pauseWorkout()
                }
                else {
                    resumeWorkout()
                }
            }

            // Auto-pause
            if event.type == HKWorkoutEventType.motionPaused && workoutSettings.autoPause {
                print("Auto Pause")
                pauseWorkout()
            }
            if event.type == HKWorkoutEventType.motionResumed && workoutSettings.autoPause {
                print("Auto Resume")
                resumeWorkout()
            }
        }
Run Code Online (Sandbox Code Playgroud)

问题出现在“//自动暂停”部分。我错过了什么吗?

appdelegate swift healthkit watchkit pause

1
推荐指数
1
解决办法
662
查看次数