gpt4 book ai didi

ios - SwiftUI 根据设备设置 navigationViewStyle

转载 作者:行者123 更新时间:2023-12-02 03:23:57 24 4
gpt4 key购买 nike

我正在尝试让我的导航 View 样式在 iPad 上堆叠,但在 iPhone 上默认。

代码:

.navigationViewStyle(UIDevice.current.userInterfaceIdiom == .pad ? StackNavigationViewStyle() : DefaultNavigationViewStyle())

给我错误:

Result values in '? :' expression have mismatching types 'StackNavigationViewStyle' and 'DefaultNavigationViewStyle'

这不都是NavigationViewStyle的子类吗?

最佳答案

我建议将其提取到简单的包装修饰符中,并在需要的地方使用它。这是修改器:

更新:

extension View {
@ViewBuilder
public func currentDeviceNavigationViewStyle() -> some View {
if UIDevice.current.userInterfaceIdiom == .pad {
self.navigationViewStyle(StackNavigationViewStyle())
} else {
self.navigationViewStyle(DefaultNavigationViewStyle())
}
}
}

SwiftUI 1.0(向后兼容)

extension View {
public func currentDeviceNavigationViewStyle() -> AnyView {
if UIDevice.current.userInterfaceIdiom == .pad {
return AnyView(self.navigationViewStyle(StackNavigationViewStyle()))
} else {
return AnyView(self.navigationViewStyle(DefaultNavigationViewStyle()))
}
}
}

关于ios - SwiftUI 根据设备设置 navigationViewStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59145043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com