From 78b4ea72b5f7e2d1911a57df826bfc709fde36fe Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Mon, 5 Jun 2023 01:01:15 +0100 Subject: [PATCH] wip --- Sources/ViewTypes/NavigationSplitView.swift | 12 ++++++++-- Sources/ViewTypes/NavigationStack.swift | 12 ++++++++-- .../NavigationViewWithColumnsStyle.swift | 24 ++++++++++++------- .../NavigationViewWithStackStyle.swift | 24 ++++++++++++------- Sources/ViewTypes/TabView.swift | 24 ++++++++++++------- 5 files changed, 68 insertions(+), 28 deletions(-) diff --git a/Sources/ViewTypes/NavigationSplitView.swift b/Sources/ViewTypes/NavigationSplitView.swift index b0b2b59..a7eec20 100644 --- a/Sources/ViewTypes/NavigationSplitView.swift +++ b/Sources/ViewTypes/NavigationSplitView.swift @@ -17,7 +17,11 @@ extension iOSViewVersion { @available(*, unavailable, message: "NavigationSplitView isn't available on iOS 15") public static let v15 = Self.unavailable() - public static let v16 = Self(for: .v16) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.splitViewController) + } } extension tvOSViewVersion { @@ -28,7 +32,11 @@ extension tvOSViewVersion { @available(*, unavailable, message: "NavigationSplitView isn't available on tvOS 15") public static let v15 = Self.unavailable() - public static let v16 = Self(for: .v16) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.navigationController) + } } #elseif canImport(AppKit) extension macOSViewVersion { diff --git a/Sources/ViewTypes/NavigationStack.swift b/Sources/ViewTypes/NavigationStack.swift index 7aa1028..a891760 100644 --- a/Sources/ViewTypes/NavigationStack.swift +++ b/Sources/ViewTypes/NavigationStack.swift @@ -17,7 +17,11 @@ extension iOSViewVersion { @available(*, unavailable, message: "NavigationStack isn't available on iOS 15") public static let v15 = Self.unavailable() - public static let v16 = Self(for: .v16) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.navigationController) + } } extension tvOSViewVersion { @@ -28,6 +32,10 @@ extension tvOSViewVersion { @available(*, unavailable, message: "NavigationStack isn't available on tvOS 15") public static let v15 = Self.unavailable() - public static let v16 = Self(for: .v16) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.navigationController) + } } #endif diff --git a/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift b/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift index 41231a0..e8e8d3a 100644 --- a/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift +++ b/Sources/ViewTypes/NavigationViewWithColumnsStyle.swift @@ -14,17 +14,25 @@ extension IntrospectableViewType where Self == NavigationViewWithColumnsStyleTyp #if canImport(UIKit) extension iOSViewVersion { - public static let v13 = Self(for: .v13) - public static let v14 = Self(for: .v14) - public static let v15 = Self(for: .v15) - public static let v16 = Self(for: .v16) + public static let v13 = Self(for: .v13, selector: selector) + public static let v14 = Self(for: .v14, selector: selector) + public static let v15 = Self(for: .v15, selector: selector) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.splitViewController) + } } extension tvOSViewVersion { - public static let v13 = Self(for: .v13) - public static let v14 = Self(for: .v14) - public static let v15 = Self(for: .v15) - public static let v16 = Self(for: .v16) + public static let v13 = Self(for: .v13, selector: selector) + public static let v14 = Self(for: .v14, selector: selector) + public static let v15 = Self(for: .v15, selector: selector) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.navigationController) + } } #elseif canImport(AppKit) extension macOSViewVersion { diff --git a/Sources/ViewTypes/NavigationViewWithStackStyle.swift b/Sources/ViewTypes/NavigationViewWithStackStyle.swift index b6e1083..4507ddd 100644 --- a/Sources/ViewTypes/NavigationViewWithStackStyle.swift +++ b/Sources/ViewTypes/NavigationViewWithStackStyle.swift @@ -14,16 +14,24 @@ extension IntrospectableViewType where Self == NavigationViewWithStackStyleType #if canImport(UIKit) extension iOSViewVersion { - public static let v13 = Self(for: .v13) - public static let v14 = Self(for: .v14) - public static let v15 = Self(for: .v15) - public static let v16 = Self(for: .v16) + public static let v13 = Self(for: .v13, selector: selector) + public static let v14 = Self(for: .v14, selector: selector) + public static let v15 = Self(for: .v15, selector: selector) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.navigationController) + } } extension tvOSViewVersion { - public static let v13 = Self(for: .v13) - public static let v14 = Self(for: .v14) - public static let v15 = Self(for: .v15) - public static let v16 = Self(for: .v16) + public static let v13 = Self(for: .v13, selector: selector) + public static let v14 = Self(for: .v14, selector: selector) + public static let v15 = Self(for: .v15, selector: selector) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.navigationController) + } } #endif diff --git a/Sources/ViewTypes/TabView.swift b/Sources/ViewTypes/TabView.swift index 1f16a7f..ae22911 100644 --- a/Sources/ViewTypes/TabView.swift +++ b/Sources/ViewTypes/TabView.swift @@ -10,17 +10,25 @@ extension IntrospectableViewType where Self == TabViewType { #if canImport(UIKit) extension iOSViewVersion { - public static let v13 = Self(for: .v13) - public static let v14 = Self(for: .v14) - public static let v15 = Self(for: .v15) - public static let v16 = Self(for: .v16) + public static let v13 = Self(for: .v13, selector: selector) + public static let v14 = Self(for: .v14, selector: selector) + public static let v15 = Self(for: .v15, selector: selector) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.tabBarController) + } } extension tvOSViewVersion { - public static let v13 = Self(for: .v13) - public static let v14 = Self(for: .v14) - public static let v15 = Self(for: .v15) - public static let v16 = Self(for: .v16) + public static let v13 = Self(for: .v13, selector: selector) + public static let v14 = Self(for: .v14, selector: selector) + public static let v15 = Self(for: .v15, selector: selector) + public static let v16 = Self(for: .v16, selector: selector) + + private static var selector: IntrospectionSelector { + .default.withAncestorSelector(\.tabBarController) + } } #elseif canImport(AppKit) extension macOSViewVersion {