คำถามติดแท็ก swiftui

SwiftUI เป็น Swift API ที่เปิดเผยของ Apple สำหรับการกำหนดส่วนต่อประสานผู้ใช้แบบกราฟิก ใช้แท็กนี้สำหรับคำถามเกี่ยวกับ SwiftUI ในทุกแพลตฟอร์ม

6
SwiftUI - วิธีการหลีกเลี่ยงการนำฮาร์ดโค้ดลงในมุมมอง
ฉันพยายามทำสถาปัตยกรรมสำหรับแอป SwiftUI ที่มีขนาดใหญ่ขึ้นและพร้อมใช้งาน ฉันใช้เวลาทั้งหมดในปัญหาเดียวกันซึ่งชี้ไปที่ข้อบกพร่องการออกแบบที่สำคัญใน SwiftUI ยังไม่มีใครสามารถให้คำตอบที่พร้อมสำหรับการทำงานอย่างเต็มที่กับฉันได้ วิธีการใช้ซ้ำ Views ในSwiftUIที่มีการนำทาง? เนื่องจากความSwiftUI NavigationLinkผูกพันกับมุมมองอย่างมากจึงไม่สามารถทำได้ในลักษณะที่ปรับขนาดในแอปที่ใหญ่กว่า NavigationLinkในแอปตัวอย่างขนาดเล็กเหล่านั้นทำงานได้ใช่ - แต่ไม่ใช่ทันทีที่คุณต้องการใช้ Views จำนวนมากในแอปเดียว และอาจนำมาใช้ซ้ำเกินขอบเขตของโมดูล (เช่น: ใช้การดูซ้ำใน iOS, WatchOS, ฯลฯ ... ) ปัญหาการออกแบบ: NavigationLinks ถูกฮาร์ดโค้ดลงในมุมมอง NavigationLink(destination: MyCustomView(item: item)) แต่ถ้ามุมมองที่มีสิ่งนี้NavigationLinkควรจะนำมาใช้ซ้ำฉันไม่สามารถ hardcodeปลายทางได้ จะต้องมีกลไกที่ให้ปลายทาง ฉันถามที่นี่และได้คำตอบที่ดี แต่ก็ยังไม่ได้คำตอบทั้งหมด: SwiftUI MVVM ผู้ประสานงาน / เราเตอร์ / NavigationLink แนวคิดคือการฉีดลิงค์ปลายทางลงในมุมมองที่นำมาใช้ซ้ำได้ โดยทั่วไปแล้วความคิดนี้ใช้งานได้ แต่น่าเสียดายที่นี่ไม่ได้ปรับใช้กับแอปการผลิตจริง ทันทีที่ฉันมีหน้าจอที่ใช้ซ้ำได้หลายหน้าจอฉันพบปัญหาตรรกะที่มุมมองที่นำมาใช้ซ้ำได้หนึ่งรายการ ( ViewA) ต้องมีมุมมองปลายทางที่กำหนดไว้ล่วงหน้า ( …

5
หลายแผ่น (isPresented :) ไม่ทำงานใน SwiftUI
ฉันมี ContentView นี้พร้อมมุมมองที่แตกต่างกันสองแบบดังนั้นฉันจึงใช้sheet(isPresented:)ทั้งคู่ แต่ดูเหมือนว่าจะมีการนำเสนอล่าสุดเท่านั้น ฉันจะแก้ไขปัญหานี้ได้อย่างไร หรือเป็นไปไม่ได้ที่จะใช้หลายแผ่นในมุมมองใน SwiftUI struct ContentView: View { @State private var firstIsPresented = false @State private var secondIsPresented = false var body: some View { NavigationView { VStack(spacing: 20) { Button("First modal view") { self.firstIsPresented.toggle() } Button ("Second modal view") { self.secondIsPresented.toggle() } } .navigationBarTitle(Text("Multiple modal view …

2
Catalyst 'SwiftUI.AccessibilityNode' ไม่ได้เป็นองค์ประกอบที่รู้จักได้
ฉันสร้าง iOS Single Page App ใหม่ (รวมถึง SwiftUI) ด้วย Xcode 11.1 และเปิดใช้งาน Mac Catalyst หลังจากใช้งานโปรเจคใหม่บน Mac (แน่นอนว่าเป็น MacOS 10.15) ฉันได้รับข้อผิดพลาดดังต่อไปนี้หลังจากแตะหนึ่งครั้งที่หน้าต่าง 2019-10-18 12:59:48.479186+0200 test[3130:122148] Metal API Validation Enabled 2019-10-18 12:59:50.960734+0200 test[3130:122148] [AXRuntimeCommon] Unknown client: test 2019-10-18 12:59:50.962261+0200 test[3130:122148] [AXRuntimeCommon] This class 'SwiftUI.AccessibilityNode' is not a known serializable element and returning it …

4
เทียบเท่ากับคุณสมบัติที่คำนวณได้โดยใช้ @Published ใน Swift Combine?
ในความจำเป็นอย่างรวดเร็วมันเป็นเรื่องธรรมดาที่จะใช้คุณสมบัติคำนวณเพื่อให้เข้าถึงข้อมูลได้สะดวกโดยไม่ต้องทำซ้ำ สมมติว่าฉันมีคลาสนี้ทำขึ้นสำหรับการใช้ MVC ที่จำเป็น: class ImperativeUserManager { private(set) var currentUser: User? { didSet { if oldValue != currentUser { NotificationCenter.default.post(name: NSNotification.Name("userStateDidChange"), object: nil) // Observers that receive this notification might then check either currentUser or userIsLoggedIn for the latest state } } } var userIsLoggedIn: Bool { currentUser != nil …

2
ไม่สามารถเลือกแถวเดียวกันสองครั้งใน SwiftUI
ฉันมีรายการการนำทางที่มีหลายส่วนและหลายแถว ฉันเลือกแถว foo มันนำทางไปยังมุมมองที่ฉันต้องการ อย่างไรก็ตามเมื่อฉันกลับไปที่รูทวิวฉันไม่สามารถเลือกแถวฟูได้ ฉันแตะแถวฟูและไม่มีอะไรเกิดขึ้น ฉันแตะที่แถบแถวและแถวนั้นจะส่งฉันไปที่มุมมอง กลับไปที่มุมมองรูต จากนั้นฉันไม่สามารถเลือกแถวบาร์ได้ แต่ตอนนี้แถว foo ใช้ได้ผล นี่เป็นข้อบกพร่องใน SwiftUI หรือลักษณะการออกแบบหรือไม่ มีบางอย่างที่ฉันต้องทำเพื่อรีเซ็ตมุมมองเมื่อฉันออกไปหรือไม่ NavigationView { List { Section(header: shoppingListData.lastItemSection.sectionHeader, footer: shoppingListData.lastItemSection.sectionFooter) { ForEach(0..<shoppingListData.lastItemSection.sectionRows.count) { index in ShoppingItemRow(shoppingListData: self.shoppingListData, rowItem: self.shoppingListData.lastItemSection.sectionRows[index]) } } } } นี่เป็นอีกกรณีหนึ่งที่มีปัญหาเดียวกัน ฉันสามารถเลือกแถวตัวเลือกของแบบฟอร์มหนึ่งครั้งเท่านั้น ถ้าฉันกลับไปที่มุมมองรูทแล้วกลับมาที่มุมมองนี้อีกครั้งฉันสามารถเลือกตัวเลือกได้อีกครั้ง หากฉันตั้ง pickerStyle เป็น SegmentedPickerStyle () ฉันสามารถเลือกได้หลายครั้ง struct ShoppingItemPage: View { …

3
วิธีบอกมุมมอง SwiftUI เพื่อผูกกับ ObservableObjects ที่ซ้อนกัน
ผมมีมุมมองที่ SwiftUI ที่ใช้เวลาใน EnvironmentObject appModelที่เรียกว่า จากนั้นอ่านค่าappModel.submodel.countในbodyวิธีการของมัน ผมคาดหวังนี้จะผูกมุมมองของฉันไปยังสถานที่countในsubmodelเพื่อที่จะทำให้อีกครั้งเมื่อการปรับปรุงสถานที่ให้บริการ แต่ตอนนี้ดูเหมือนจะไม่เกิดขึ้น นี่เป็นข้อบกพร่องหรือไม่? และถ้าไม่มีวิธีการที่มีมุมมองที่ผูกกับคุณสมบัติที่ซ้อนกันของวัตถุสภาพแวดล้อมใน SwiftUI คืออะไร? แบบจำลองของฉันมีลักษณะเช่นนี้ ... class Submodel: ObservableObject { @Published var count = 0 } class AppModel: ObservableObject { @Published var submodel: Submodel = Submodel() } และมุมมองของฉันดูเหมือนนี้ ... struct ContentView: View { @EnvironmentObject var appModel: AppModel var body: some View { …
18 ios  swift  swiftui  combine 

3
SwiftUI - วิธีการส่ง EnvironmentObject เป็น View Model?
ฉันต้องการสร้าง EnvironmentObject ที่สามารถเข้าถึงได้โดย View Model (ไม่ใช่เฉพาะมุมมอง) วัตถุสภาพแวดล้อมติดตามข้อมูลเซสชันแอปพลิเคชันเช่น logIn, โทเค็นการเข้าถึง ฯลฯ ข้อมูลนี้จะถูกส่งผ่านไปยังมุมมองรูปแบบ (หรือคลาสบริการที่จำเป็น) เพื่อให้สามารถเรียกใช้ API เพื่อส่งผ่านข้อมูลจาก EnvironmentObjects นี้ ฉันพยายามส่งผ่านวัตถุเซสชันไปยังผู้เริ่มต้นของคลาสโมเดลมุมมองจากมุมมอง แต่ได้รับข้อผิดพลาด ฉันจะเข้าถึง / ส่ง EnvironmentObject ไปยังโมเดลมุมมองโดยใช้ SwiftUI ได้อย่างไร ดูลิงค์เพื่อทดสอบโครงการ: https://gofile.io/?c=vgHLVx
16 ios  swift  mvvm  swiftui 

2
SwiftUI ดูเค้าโครงเนื้อหาปรากฏขึ้นโดยไม่คาดหมายปรากฏขึ้นหรือกระโดดข้าม?
เมื่อนำทางไปยังมุมมองใหม่ด้วยฟอร์มหรือรายการ (จัดกลุ่ม) เนื้อหาจะปรากฏขึ้นประมาณหนึ่งในสี่ส่วนจากด้านล่างของชื่อมุมมองการนำทางจากนั้น "ปรากฏ" ขึ้นไปยังตำแหน่งที่ถูกต้องประมาณครึ่งวินาทีในภายหลัง น่าเกลียดมาก. ไม่แน่ใจว่านี่เป็นข้อผิดพลาด SwiftUI หรือฉันกำลังจัดโครงสร้างบางอย่างไม่ถูกต้องหรือไม่ ฉันทดสอบสิ่งนี้ทั้งในเครื่องจำลองและอุปกรณ์ที่มีผลลัพธ์เหมือนกัน ฉันคิดว่ามันมีบางอย่างเกี่ยวกับวิธีจัดการลิงก์นำทาง? ลิงก์การนำทางทุกรายการจะเรียก init () บนมุมมองปลายทางเมื่อ ContentView ปรากฏขึ้น สำหรับฉันสิ่งนี้ไม่สมเหตุสมผลไม่ควรเรียก init ปลายทาง () เรียกเฉพาะช่วงเวลาที่ผู้ใช้คลิกลิงก์การนำทางจริงหรือ ฉันได้ลองกับแผ่นงานนี้และปัญหาไม่ได้อยู่กับแผ่นงานเฉพาะเมื่อใช้การเชื่อมโยงการนำทางที่มีรูปแบบหรือรายการที่จัดกลุ่มตามสไตล์ รหัสจากแอปพลิเคชันมุมมองใหม่ล่าสุด: struct ContentView: View { var body: some View { NavigationView { NavigationLink(destination: TestView()) { Text("Test Link") } .navigationBarTitle("Content View") } } } struct TestView: View { …
16 ios  swift  swiftui 

3
วิธีการปิดการใช้งานภาพเคลื่อนไหวในรายการเมื่อวัตถุที่สังเกตเห็นการเปลี่ยนแปลงใน SwiftUI?
ฉันจะปิดการใช้งานภาพเคลื่อนไหวเมื่อดูข้อมูลโมเดลเปลี่ยนแปลงได้อย่างไร ฉันมีรหัสต่อไปนี้: struct FormView: View { @ObservedObject var viewModel: FormViewModel var body: some View { List { ForEach(viewModel.options) { option in Text(option.displayValue) } } } } การเปลี่ยนแปลงรูปแบบมุมมองทุกครั้งListจะได้รับการอัพเดตด้วยภาพเคลื่อนไหว ฉันจะปิดการใช้งานได้อย่างไร ฉันพยายามเพิ่ม.animation(nil)แต่มันก็ไม่ได้ช่วย
15 ios  swiftui 

1
การบันทึกเอนทิตีข้อมูลหลักใน popover ใน SwiftUI จะพ่น nilError โดยไม่ต้องผ่าน. สิ่งแวดล้อมไปยัง SubView อีกครั้ง
Playin 'กับ SwiftUI และ Core Data ทำให้ฉันมีปัญหาแปลก ๆ ดังนั้นสถานการณ์ดังต่อไปนี้: ฉันมีมุมมองหลัก "AppView" และมุมมองย่อยที่ชื่อว่า "SubView" มุมมอง SubView จะถูกเปิดจากมุมมอง AppView ถ้าฉันคลิกปุ่มบวกใน NavigationTitleBar ในฐานะ popover หรือชีต @Environment(\.managedObjectContext) var managedObjectContext @State private var modal: Bool = false ... Button(action: { self.modal.toggle() }) { Image(systemName: "plus") }.popover(isPresented: self.$modal){ SubView() } มุมมอง SubView มีรูปแบบเล็ก ๆ ที่มีวัตถุ TextField …
15 ios  swift  core-data  swiftui 

2
วิธีการอัพเดต @FetchRequest เมื่อมีการเปลี่ยนแปลง Entity ที่เกี่ยวข้องใน SwiftUI
ใน SwiftUI ViewฉันมีListอยู่บนพื้นฐานของ@FetchRequestการแสดงข้อมูลของPrimaryนิติบุคคลและผ่านความสัมพันธ์ที่เชื่อมต่อSecondaryนิติบุคคล ViewและListปรับปรุงอย่างถูกต้องเมื่อฉันเพิ่มใหม่Primaryนิติบุคคลกับนิติบุคคลใหม่รองที่เกี่ยวข้อง ปัญหาคือเมื่อฉันอัปเดตSecondaryรายการที่เชื่อมต่อในมุมมองรายละเอียดฐานข้อมูลจะได้รับการอัพเดต แต่การเปลี่ยนแปลงจะไม่สะท้อนให้เห็นในPrimaryรายการ เห็นได้ชัด@FetchRequestว่าไม่ได้รับการกระตุ้นจากการเปลี่ยนแปลงในมุมมองอื่น เมื่อฉันเพิ่มรายการใหม่ในมุมมองหลักหลังจากนั้นรายการที่เปลี่ยนแปลงก่อนหน้านี้จะได้รับการปรับปรุงในที่สุด ในฐานะที่เป็นวิธีการแก้ปัญหาฉันยังปรับปรุงคุณลักษณะของPrimaryกิจการในมุมมองรายละเอียดและการเปลี่ยนแปลงที่เผยแพร่ไปยังPrimaryมุมมองอย่างถูกต้อง คำถามของฉัน: ฉันจะบังคับให้อัปเดตข้อมูลทั้งหมดที่เกี่ยวข้อง@FetchRequestsใน SwiftUI Core Data ได้อย่างไร โดยเฉพาะเมื่อฉันไม่มีการเข้าถึงโดยตรงไปยังหน่วยงานที่เกี่ยวข้อง / @Fetchrequests? import SwiftUI extension Primary: Identifiable {} // Primary View struct PrimaryListView: View { @Environment(\.managedObjectContext) var context @FetchRequest( entity: Primary.entity(), sortDescriptors: [NSSortDescriptor(key: "primaryName", ascending: true)] ) var fetchedResults: FetchedResults<Primary> var body: some View …

4
เหตุใดตัวเลือก SwiftUI ในการจัดตำแหน่งฟอร์มใหม่หลังจากการนำทาง
หลังจากคลิกตัวเลือกมันจะนำทางไปยังมุมมองที่เลือก รายการไอเท็มถูกแสดงมากเกินไปจากด้านบน แต่ถ่ายภาพหลังจากที่ภาพเคลื่อนไหวเสร็จสิ้น ทำไมสิ่งนี้จึงเกิดขึ้น การสาธิต: https://gfycat.com/idioticdizzyazurevase ฉันได้สร้างตัวอย่างขั้นต่ำเพื่อแยกแยะชื่อและปุ่มของแถบการนำทางส่วนของแบบฟอร์มและรายละเอียดอื่น ๆ : import SwiftUI struct NewProjectView: View { @State var name = "" var body: some View { NavigationView { Form { Picker("Client", selection: $name) { Text("Client 1") Text("Client 2") } } } } } struct NewProjectView_Previews: PreviewProvider { static var previews: some …
12 ios  forms  swiftui  picker 

1
Multi Column TableViews ใน MacOS โดยใช้ SwiftUI
ฉันทดลองกับ SWiftUI นิดหน่อยและดูเหมือนจะไม่พบข้อมูลใด ๆ เกี่ยวกับวิธีใช้ SWiftUI เพื่อสร้าง TableView แบบหลายคอลัมน์เหมือนใน NSTableView ตัวอย่างทั้งหมดที่ฉันจัดการเพื่อค้นหาแสดงคอลัมน์ข้อมูลเดียว เอกสารที่ Apple ระบุว่าโครงสร้างรายการ SwiftUI สำหรับการแสดงคอลัมน์เดียวของแถวข้อมูล นี่เป็นโครงสร้างข้อมูลพื้นฐานที่สวยงามสำหรับแอปบน MacOS แต่ดูเหมือนจะไม่มีการพูดถึงเลย! ใครบางคนสามารถส่องแสงนี้ ฉันคิดว่ามันยังไม่พร้อม แต่ก็ยัง ...
12 macos  swiftui 

3
SwiftUI: การอัปเดตตัวอย่างอัตโนมัติหยุดชั่วคราวเสมอ
ฉันมีแอพที่มีอยู่แล้วโดยพื้นฐานแล้วเป็นแอปรายการช็อปปิ้งซึ่งฉันพยายามเพิ่ม SwiftUI Sweetin หวาน ๆ ปัญหาของฉันคือการอัปเดตตัวอย่างแบบเรียลไทม์ไม่ทำงานคำเตือน "การอัปเดตตัวอย่างอัตโนมัติหยุดชั่วคราว" จะแสดงขึ้นอย่างต่อเนื่อง ฉันกดปุ่มประวัติย่อมันสร้างแอพแสดงมุมมองปัจจุบันและคำเตือนนั้นจะปรากฏขึ้นอีกครั้งทันที ฉันไม่สามารถเห็นการเปลี่ยนแปลงของรหัสที่ปรากฏบนผืนผ้าใบโดยไม่ต้องใช้ปุ่มดำเนินการต่อ สิ่งนี้เกิดขึ้นใน Xcode 11.1 และ 11.2 beta 2 ฉันไม่สามารถพูดถึงสิ่งนี้ได้ใน SO และมีเธรดเดียวที่ไม่มีคำตอบในฟอรัม Dev ของ Apple
12 xcode  swiftui 

3
นำเสนอมุมมองใหม่ใน SwiftUI
ฉันต้องการคลิกปุ่มจากนั้นนำเสนอมุมมองใหม่เหมือนpresent modallyใน UIKit ฉันเคยเห็น " วิธีการนำเสนอมุมมองใหม่โดยใช้ชีต" แต่ฉันไม่ต้องการแนบกับมุมมองหลักเป็นแผ่นคำกริยา และฉันไม่ต้องการใช้NavigationLinkเพราะฉันไม่ต้องการมุมมองใหม่และมุมมองเก่ามีความสัมพันธ์ในการนำทาง ขอบคุณสำหรับความช่วยเหลือของคุณ...
11 ios  swiftui 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.