SwiftUIで画面遷移先のViewから遷移元のメソッドを呼び出す
SwiftUIで画面遷移先のViewから遷移元のメソッドを呼び出す方法です。
ContentView.swift
import SwiftUI
struct ContentView: View, MyProtocol {
@State var text: String = "My Text"
var body: some View {
NavigationView {
VStack {
Text(text)
NavigationLink(destination: SecondView(delegate: self)) {
Text("2nd View")
}
}
}
}
func myFunc() {
text = "Changed Text"
}
}
struct SecondView: View {
var delegate: MyProtocol
var body: some View {
Button(action: {
self.delegate.myFunc()
}) {
Text("ChangeText")
}
}
}
MyProtocol.swift
import Foundation
protocol MyProtocol {
func myFunc()
}
SecondView.swift
import SwiftUI
struct SecondView: View {
var delegate: MyProtocol
var body: some View {
Button(action: {
delegate.myFunc()
}) {
Text("ChangeText")
}
}
}
