contination du binding 🍺

SpriteKit
Pierre FERREIRA 11 months ago
parent 19bdf51b2f
commit 516db63bde

@ -23,6 +23,7 @@
7B6426F92C00BDEA00575E16 /* SpriteKitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6426F82C00BDEA00575E16 /* SpriteKitView.swift */; };
7B6426FB2C00BFF500575E16 /* SpriteMeeple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6426FA2C00BFF500575E16 /* SpriteMeeple.swift */; };
7BB279892BFDF79E00491801 /* GameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BB279882BFDF79E00491801 /* GameView.swift */; };
7BDC5DA12C0F2B81008893EE /* PlayerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDC5DA02C0F2B81008893EE /* PlayerExtension.swift */; };
7BDD43C72BFCC927003984FB /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDD43C62BFCC927003984FB /* MainMenuView.swift */; };
7BDD43C92BFCD2C4003984FB /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDD43C82BFCD2C4003984FB /* HistoryView.swift */; };
7BDE976D2C0E13160079F2CD /* EditModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDE976C2C0E13160079F2CD /* EditModalView.swift */; };
@ -71,6 +72,7 @@
7B6426F82C00BDEA00575E16 /* SpriteKitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteKitView.swift; sourceTree = "<group>"; };
7B6426FA2C00BFF500575E16 /* SpriteMeeple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpriteMeeple.swift; sourceTree = "<group>"; };
7BB279882BFDF79E00491801 /* GameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameView.swift; sourceTree = "<group>"; };
7BDC5DA02C0F2B81008893EE /* PlayerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerExtension.swift; sourceTree = "<group>"; };
7BDD43C62BFCC927003984FB /* MainMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = "<group>"; };
7BDD43C82BFCD2C4003984FB /* HistoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryView.swift; sourceTree = "<group>"; };
7BDE976C2C0E13160079F2CD /* EditModalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditModalView.swift; sourceTree = "<group>"; };
@ -215,6 +217,7 @@
isa = PBXGroup;
children = (
7BE8C5642C09A29A00A6E8C9 /* Color.swift */,
7BDC5DA02C0F2B81008893EE /* PlayerExtension.swift */,
);
path = Extension;
sourceTree = "<group>";
@ -360,6 +363,7 @@
buildActionMask = 2147483647;
files = (
7B6426F72C00B81400575E16 /* GameScene.swift in Sources */,
7BDC5DA12C0F2B81008893EE /* PlayerExtension.swift in Sources */,
7B4508F72BF2084B0027E1EF /* PlayerView.swift in Sources */,
7BDD43C72BFCC927003984FB /* MainMenuView.swift in Sources */,
7B4508CF2BF206AF0027E1EF /* ContentView.swift in Sources */,

@ -10,8 +10,25 @@ import DouShouQiModel
class PlayerVM : ObservableObject {
@Published var player : Player
@Published var data : Player.Data
@Published var isEditing : Bool
public init(player: Player) {
public init(with player: Player) {
self.player = player
self.data = player.data
self.isEditing = false
}
func onEditing(){
self.data = player.data
self.isEditing = true
}
func onEdited(isCanceled cancel : Bool = false){
if !cancel {
//save
player.update(from: data)
}
isEditing.toggle()
}
}

@ -0,0 +1,35 @@
//
// PlayerExtension.swift
// DouShouQiIOS
//
// Created by Pierre FERREIRA on 04/06/2024.
//
import Foundation
import DouShouQiModel
extension Player {
struct Data : Identifiable {
//var dataId: ObjectIdentifier = ObjectIdentifier()
var id : Owner
var name : String
// Copie de player
}
var data : Data {
Data(id: self.id, name: self.name)
}
func update (from data : Data){
///Test de l'id
if (data.id == .noOne){
print("Problème de mise a jour des données")
return
}
///Assignations
}
}

@ -6,21 +6,27 @@
//
import SwiftUI
import DouShouQiModel
struct EditModalView: View {
@Binding var playerVM : PlayerVM
@Binding var isEdited : Bool
var name : String = ""
var body: some View {
VStack{
Text("Hello, World!")
TextField("Entrez un nom ici",text: .constant(""))
}.padding()
.toolbar {
Button(action: {playerVM.onEdited()}, label: {Text("Done")})
Button(action: {playerVM.onEdited(isCanceled: true)}, label: {Text("Cancel")})
}
}
}
struct EditModalView_Previews: PreviewProvider {
static var previews: some View {
EditModalView(isEdited: .constant(true))
EditModalView(playerVM: .constant(PlayerVM(with:Player(withName: "toto", andId: .player2)! )), isEdited: .constant(true))
}
}

@ -20,7 +20,8 @@ struct PlayerView: View {
var histoMatches : [ Match ]
@State var isEdited : Bool = false
//@ObservedObject var player : PlayerVM //TODO
//@ObservedObject var player : PlayerVM //TODO
//@Published var data : Data
var body: some View {
//ZStack{

Loading…
Cancel
Save