åæ
Qiitaã§ã®@goofmintããã®
èšäºãåèã«æš¡ååŠç¿ãããŠããã®ã§ããã
衚瀺ãããŸããããŸããã
å®çŸãããããš
æ¬æ¥ãªãã°ã¢ããªãèµ·åãããšã
æçš¿ããããªã¹ãã衚瀺ããããšæãã®ã§ããã
äžåºŠå³äžã®ïŒãã¿ã³(èšäºãæçš¿ããç»é¢)ã
æŒããŠãããããªããš
ãªã¹ãã衚瀺ãããŸããã
ã¢ããªãèµ·åãããš
ãªã¹ãã衚瀺ã§ããããã«ãããã
çºçããŠããåé¡ã»ãšã©ãŒã¡ãã»ãŒãž
æ¬æ¥ãªãã°ã¢ããªãèµ·åãããšã æçš¿ããããªã¹ãã衚瀺ããããšæãã®ã§ããã äžåºŠå³äžã®ïŒãã¿ã³(èšäºãæçš¿ããç»é¢)ã æŒããŠãããããªããš ãªã¹ãã衚瀺ãããŸããã
該åœã®ãœãŒã¹ã³ãŒã
SwiftUI
1 2import SwiftUI 3import NCMB 4 5struct ThreadListView: View { 6 @State var threads: [NCMBObject] = [] 7 @State private var showModal = false 8 @State private var showAlert = false 9 10 var body: some View { 11 NavigationView { 12 ZStack { 13 List { 14 ForEach(self.threads, id: \.objectId) { thread in 15 NavigationLink( 16 destination: ThreadView(thread: thread) 17 ) { 18 ThreadListRow(thread: thread) 19 } 20 } 21 .onDelete(perform: delete) 22 } 23 .navigationBarTitle("æ²ç€ºæ¿", displayMode: .inline) 24 .navigationBarItems(trailing: 25 Button(action: { 26 showModal.toggle() 27 }, label: { 28 Image(systemName: "plus") 29 .resizable() 30 .padding(6) 31 .frame(width: 24, height: 24) 32 .foregroundColor(.blue) 33 }) 34 ) 35 } 36 } 37 .onAppear { 38 getThread() 39 } 40 .sheet(isPresented: $showModal, content: { 41 AddThreadView() 42 }) 43 .onChange(of: showModal, perform: { value in 44 if (!showModal) { 45 getThread() 46 } 47 }) 48 .alert(isPresented: $showAlert, content: { 49 Alert(title: Text("åé€ã«å€±æããŸãããæš©éããªãããã§ãã")) 50 }) 51 } 52 53 func getThread() { 54 let query = NCMBQuery.getQuery(className: "Thread") 55 let results = query.find() 56 switch results { 57 case let .success(ary): 58 threads = ary 59 case .failure(_): break 60 } 61 } 62 63 func delete(at offsets: IndexSet) { 64 let thread = self.threads[Array(offsets)[0]] as NCMBObject 65 let results = thread.delete() 66 switch results { 67 case .success(_): 68 getThread() 69 case .failure(_): 70 showAlert = true 71 } 72 } 73} 74
詊ããããš
ZStackããªã¹ãã®äœçœ®ãå€ããŸãããã
å€åããããŸããã§ããã
è£è¶³æ å ±ïŒFW/ããŒã«ã®ããŒãžã§ã³ãªã©ïŒ
Qiitaã§ã®@goofmintããã®
åèèšäºã§ãã
ã³ãŒããããã«å šãŠãããŸãã
@goofmintããã®åèèšäº
ãã²ãåæ·»ãããã ããŸããšå€§å€å¬ããã§ãã
ãããããé¡ãèŽããŸãã
ãã¡ãã®è³ªåãè€æ°ã®ãŠãŒã¶ãŒãããåºåãšåãåããããããªè³ªåããšããææãåããŸããã
ããªãã®åç
tips
ãã¬ãã¥ãŒ
ãŸã åçãã€ããŠããŸãã
äŒå¡ç»é²ããŠåçããŠã¿ããã¢ã«ãŠã³ãããæã¡ã®æ¹ã¯
15å調ã¹ãŠãããããªãããšã¯
teratailã§è³ªåãããïŒ
ãã ããŸã®åçç
85.83%
質åããŸãšããããšã§
æèãæŽçããŠçŽ æ©ã解決
ãã³ãã¬ãŒãæ©èœã§
ç°¡åã«è³ªåããŸãšãã