From c489603ff69be2f274268a6364794ef6569edf67 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkk669@users.noreply.github.com> Date: Wed, 26 Apr 2023 00:50:47 +0900 Subject: [PATCH] FIx UI issues in iOS 15 (#64) fixes #64 --- DNSecure/Views/ContentView.swift | 72 ++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/DNSecure/Views/ContentView.swift b/DNSecure/Views/ContentView.swift index d7513ff..ce3f5e7 100644 --- a/DNSecure/Views/ContentView.swift +++ b/DNSecure/Views/ContentView.swift @@ -10,6 +10,7 @@ import SwiftUI struct ContentView { @Environment(\.scenePhase) private var scenePhase + @Environment(\.horizontalSizeClass) private var hSizeClass @Binding var servers: Resolvers @Binding var usedID: String? @State private var isEnabled = false @@ -131,6 +132,9 @@ extension ContentView: View { var body: some View { if #available(iOS 16, *) { self.modernBody + } else if self.hSizeClass == .compact { + // Workaround for iOS 15 + self.legacyBody.navigationViewStyle(.stack) } else { self.legacyBody } @@ -189,22 +193,38 @@ extension ContentView: View { private var legacyBody: some View { NavigationView { List { - NavigationLink( - "Instructions", - tag: -1, - selection: self.$selection - ) { - HowToActivateView(isSheet: false) + if self.hSizeClass == .compact { + NavigationLink( + "Instructions", + tag: -1, + selection: self.$selection + ) { + HowToActivateView(isSheet: false) + } + } else { + // Workaround for iOS 15 + Button("Instructions") { + self.selection = -1 + } } Section("Servers") { ForEach(0.. some View { - VStack(alignment: .leading) { - Text(self.servers[i].name) - Text(self.servers[i].configuration.description) - .foregroundColor(.secondary) - } - if self.usedID == self.servers[i].id.uuidString { - Spacer() - Image(systemName: "checkmark") + private func sidebarRow(at i: Int) -> some View { + HStack { + VStack(alignment: .leading) { + Text(self.servers[i].name) + Text(self.servers[i].configuration.description) + .foregroundColor(.secondary) + } + if self.usedID == self.servers[i].id.uuidString { + Spacer() + Image(systemName: "checkmark") + } } }