diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift index eebebba..e42dbb7 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerRow.swift @@ -6,7 +6,7 @@ struct PlayerRow: View { @State private var showDetailView = false @ObservedObject var players: PlayersVM - + var body: some View { HStack { if let image = UIImage(contentsOfFile: player.player.photo) { diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift index 0c7963f..e3a542b 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/PlayerStatView.swift @@ -8,7 +8,7 @@ import SwiftUI struct PlayerStatView: View { - var player: PlayerVM + @StateObject var player: PlayerVM @State private var showEditView = false @State private var showDeleteAlert = false @ObservedObject var players: PlayersVM @@ -66,7 +66,7 @@ struct PlayerStatView: View { .foregroundColor(.green) } .sheet(isPresented: $showEditView) { - EditPlayerView(isPresented: $showEditView, player: player, playersVM: players) + EditPlayerView(isPresented: $showEditView, player: player, playersVM: players, playerName: player.player.name) } Button(action: { diff --git a/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayersVM.swift b/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayersVM.swift index e2b7476..23ea32f 100644 --- a/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayersVM.swift +++ b/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayersVM.swift @@ -36,8 +36,8 @@ public class PlayersVM: ObservableObject{ players = cdPlayers.map { PlayerVM(player: Player(name: $0.name ?? "", photo: $0.photo ?? "")) } } - func updatePlayer(playerVM: PlayerVM) { - if let index = players.firstIndex(where: { $0.player.name == playerVM.player.name }) { + func updatePlayer(playerVM: PlayerVM, playerName: String) { + if let index = players.firstIndex(where: { $0.player.name == playerName }) { players[index] = playerVM CoreDataManager.shared.saveContext() refreshPlayers() diff --git a/DouShouQi_App/DouShouQi_App/Views/Player/EditPlayerView.swift b/DouShouQi_App/DouShouQi_App/Views/Player/EditPlayerView.swift index c36319d..5e29837 100644 --- a/DouShouQi_App/DouShouQi_App/Views/Player/EditPlayerView.swift +++ b/DouShouQi_App/DouShouQi_App/Views/Player/EditPlayerView.swift @@ -13,9 +13,12 @@ struct EditPlayerView: View { @ObservedObject var player: PlayerVM @ObservedObject var playersVM: PlayersVM + @State private var profileImage: UIImage? = nil @State private var showImagePicker = false @State private var imagePickerSourceType: UIImagePickerController.SourceType = .photoLibrary + + var playerName: String var body: some View { VStack(spacing: 20) { @@ -54,8 +57,7 @@ struct EditPlayerView: View { try? imageData.write(to: fileURL) player.player.photo = fileURL.path } - playersVM.updatePlayer(playerVM: player) - playersVM.refreshPlayers() + playersVM.updatePlayer(playerVM: player, playerName: playerName) isPresented = false }) { Text("Save")