相关疑难解决方法(0)

从 Button 按 Swift UI 显示新视图

我希望能够在我的一个视图上按下按钮时显示一个新视图。

从我看过的教程和这里的其他回答问题来看,似乎每个人都在导航视图中使用导航按钮,除非我误认为导航视图是在我的应用程序顶部给我一个菜单栏右箭头的那个,所以我没有不想要那个。当我将导航按钮放在不是 NavigationView 子项的视图中时,它只是在 UI 上被禁用,我无法单击它,所以我想我不能使用它。

我见过的其他示例似乎使用了演示链接/按钮,它们似乎显示了一种弹出式视图。

我只是在寻找如何单击一个常规按钮并显示另一个全屏视图,就像在旧的做事方式中执行 segue 一样。

swiftui

8
推荐指数
2
解决办法
1万
查看次数

如何将一个SwiftUI View作为变量传递给另一个View结构

我正在实现一个非常自定义的NavigationLink MenuItem,它想在整个项目中重复使用。这是一个符合View和实现的结构,var body : some View其中包含NavigationLink。我需要以某种方式将将要呈现的视图存储NavigationLink在主体中,MenuItem但尚未这样做。

destinationViewMenuItem的主体中定义为,some View并尝试了两个初始化方法:

这似乎太简单了:

struct MenuItem: View {
    private var destinationView: some View

    init(destinationView: View) {
        self.destinationView = destinationView
    }

    var body : some View {
        // Here I'm passing destinationView to NavigationLink...
    }
}
Run Code Online (Sandbox Code Playgroud)

->错误:由于协议“视图”具有“自身”或相关类型要求,因此只能用作通用约束。

第二次尝试:

struct MenuItem: View {
    private var destinationView: some View

    init<V>(destinationView: V) where V: View {
        self.destinationView = destinationView …
Run Code Online (Sandbox Code Playgroud)

generics protocols view swift swiftui

7
推荐指数
7
解决办法
2013
查看次数

一次在watchOS上使用后,SwiftUI PresentationButton停止运行

PresentationButton可以正确显示视图,但是在单击“取消”以返回到父视图时,该按钮拒绝再次显示子视图。

这是我的PresentationButton代码:

struct ContentView : View {
    var body: some View {
        ZStack {

            PresentationButton(Text("Click to show"), destination: SomeOtherView())
                .transition(.slide)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

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

在没有导航链接的情况下更改视图 SwiftUI

我大家!我花了几个小时寻找一些我认为非常简单的东西,但我无法找到最好的方法......我有我的身体视图:

var body: some View {
        
        VStack {
            // The CircularMenu
            CircularMenu(menuItems: homeMenuItems, menuRadius: 55, menuButtonSize: 55, menuButtonColor: .black, buttonClickCompletion: buttonClickHandler(_:))
                .buttonStyle(PlainButtonStyle())

        }
    }
Run Code Online (Sandbox Code Playgroud)

其中包含一个圆形菜单。每次单击菜单项都会调用:

func buttonClickHandler(_ index: Int) {
        /// Your actions here
        
        switch index {
        //Thermometer
        case 0:
            print("0")
        //Light
        case 1:
            print("1")
        //Video
        case 2:
            print("2")
        //Alarm
        case 3:
            print("3")
        //Car
        case 4:
            self.destinationViewType = .car
            self.nextView(destination: .car)
            
        default:
            print("not found")
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想执行一个简单的视图转换到另一个名为“汽车”的视图。nextView函数如下所示:

func nextView(destination: DestinationViewType) {
        
        switch destination {
            case .car: Car()
        } …
Run Code Online (Sandbox Code Playgroud)

segue swiftui swiftui-navigationlink

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