タグ付けされた質問 「swiftui」

SwiftUIは、グラフィカルユーザーインターフェイスを定義するためのAppleの宣言型Swift APIです。このタグは、任意のプラットフォームのSwiftUIに関する質問に使用します。

5
複数のシート(isPresented :)がSwiftUIで機能しない
このContentViewには2つの異なるモーダルビューがあり、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 problem"), displayMode: .inline) .sheet(isPresented: $firstIsPresented) { …

2
Catalyst 'SwiftUI.AccessibilityNode'は既知のシリアル化可能な要素ではありません
Xcode 11.1とMac Catalystを有効にして、新しいiOSシングルページアプリ(SwiftUIを含む)を作成しました。Mac(もちろんmacOS 10.15)で新しいプロジェクトを実行した後、ウィンドウを1回タップすると、次のエラーが発生します。 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 as an accessibility element may lead to crashes 2019-10-18 12:59:51.313 test[3130:122148] **************_____________**************AXError: AVPlayerView is not a …

4
Swift Combineで@Publishedを使用して計算されたプロパティと同等ですか?
命令型Swiftでは、状態を複製せずにデータへの便利なアクセスを提供するために計算されたプロパティを使用するのが一般的です。 命令型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で同じ行を2回選択することはできません
複数のセクションと行を含むナビゲーションリストがあります。行fooを選択すると、目的のビューに移動します。しかし、ルートビューに戻ると、行fooを選択できません。行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]) } } } } 同じ問題が発生する別のケースを次に示します。フォームのピッカー行を選択できるのは1回だけです。ルートビューに戻ってからこのビューに戻ると、ピッカーを再び選択できます。 pickerStyleをSegmentedPickerStyle()に設定すると、複数回選択できます。 struct ShoppingItemPage: View { @ObservedObject var shoppingListData: ShoppingListData @ObservedObject var shoppingItem: ShoppingItems var body: some View { Form { Section(header: Text("Packages")) { HStack { …

3
ネストされたObservableObjectsにバインドするようにSwiftUIビューに指示する方法
と呼ばれるEnvironmentObjectを取り込むSwiftUIビューがあります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 { Text("Count: \(appModel.submodel.count)") .onTapGesture { self.appModel.submodel.count += 1 } } } アプリを実行してラベルをクリックすると、countプロパティは増加しますが、ラベルは更新されません。 これをappModel.submodelプロパティとしてに渡すことで修正できますがContentView、できれば避けたいと思います。
18 ios  swift  swiftui  combine 

3
SwiftUI-EnvironmentObjectをビューモデルに渡す方法
(ビューだけでなく)ビューモデルからアクセスできるEnvironmentObjectを作成しようとしています。 Environmentオブジェクトはアプリケーションセッションデータ(loggedIn、アクセストークンなど)を追跡します。このデータはビューモデル(または必要に応じてサービスクラス)に渡され、APIを呼び出してこのEnvironmentObjectsからデータを渡すことができます。 セッションオブジェクトをビューからビューモデルクラスの初期化子に渡そうとしましたが、エラーが発生しました。 SwiftUIを使用してEnvironmentObjectにアクセス/ビューモデルに渡すにはどうすればよいですか? テストプロジェクトへのリンクを参照してください:https : //gofile.io/?c=vgHLVx
16 ios  swift  mvvm  swiftui 

2
SwiftUIビューのコンテンツレイアウトが突然ポップ/ジャンプオン表示されますか?
フォームまたはリスト(グループ化)を使用して新しいビューに移動すると、コンテンツはナビゲーションビューのタイトルの下部から約1/4の位置に表示され、約0.5秒後に正しい場所に「ポップ」します。とても醜い。これがSwiftUIのバグか、何か間違って構造化しているのかわかりませんか? 私はこれをシミュレータとデバイスの両方でテストしましたが、同じ結果が得られました。 ナビゲーションリンクの処理方法と関係があると思いますか?ContentViewが表示されると、すべてのナビゲーションリンクが宛先ビューでinit()を呼び出します。私にとってこれは意味がありません。宛先init()は、ユーザーが実際にナビゲーションリンクをクリックした瞬間にのみ呼び出されるべきではありませんか? 私はシートでもこれを試しましたが、グループ化されたスタイルのフォームまたはリストでナビゲーションリンクを使用する場合にのみ、シートには問題がありません。 まったく新しいシングルビューアプリケーションのコード: struct ContentView: View { var body: some View { NavigationView { NavigationLink(destination: TestView()) { Text("Test Link") } .navigationBarTitle("Content View") } } } struct TestView: View { var body: some View { Form { Text("Test View") } .navigationBarTitle("Test 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
SwiftUIのポップオーバーでコアデータエンティティを保存すると、.environmentをSubViewに再度渡さずにnilErrorがスローされる
SwiftUIとCore DataでPlayinを実行すると、興味深い問題が発生しました。したがって、状況は次のとおりです。 メインビュー「AppView」と「SubView」というサブビューがあります。NavigationTitleBarのプラスボタンをポップオーバーまたはシートとしてクリックすると、AppViewビューからSubViewビューが開きます。 @Environment(\.managedObjectContext) var managedObjectContext @State private var modal: Bool = false ... Button(action: { self.modal.toggle() }) { Image(systemName: "plus") }.popover(isPresented: self.$modal){ SubView() } SubViewビューには、姓と名を追加する2つのTextFieldオブジェクトを持つ小さなフォームがあります。この2つのオブジェクトの入力は、2つの個別の@Stateプロパティによって処理されます。このフォームの3番目のオブジェクトは単純なボタンで、CoreDataのアタッチされたCustomerエンティティに姓名を保存する必要があります。 ... @Environment(\.managedObjectContext) var managedObjectContext ... Button(action: { let customerItem = Customer(context: self.managedObjectContext) customerItem.foreName = self.forename customerItem.surname = self.surname do { try self.managedObjectContext.save() } catch …
15 ios  swift  core-data  swiftui 

2
関連エンティティがSwiftUIで変更されたときに@FetchRequestを更新する方法
SwiftUIでは、エンティティのデータとビアの関係に接続されたエンティティのデータを表示ViewすることにList基づいています。そしてそのは私が新しい追加するときに、正しく更新され、新たな関連二エンティティとエンティティ。@FetchRequestPrimarySecondaryViewListPrimary 問題は、Secondary詳細ビューで接続されたアイテムを更新すると、データベースが更新されますが、変更がPrimaryリストに反映されないことです。明らかに、@FetchRequest別のビューでの変更によってトリガーされません。 その後、プライマリビューに新しいアイテムを追加すると、以前に変更されたアイテムが最終的に更新されます。 回避策として、Primary詳細ビューのエンティティの属性をさらに更新すると、変更がPrimaryビューに正しく反映されます。 私の質問は、どうすれば@FetchRequestsSwiftUI 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 { List { ForEach(fetchedResults) { primary in NavigationLink(destination: SecondaryView(primary: primary)) { …

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 View { NewProjectView() } …
12 ios  forms  swiftui  picker 

1
SwiftUIを使用したMacOSでの複数列のTableView
私はSWiftUIを少し試してみましたが、SWiftUIを使用してNSTableViewのように複数列のTableViewを作成する方法に関する情報をまったく見つけることができません。私が見つけた例はすべて、データの単一の列を示しています。Appleのドキュメントでは、SwiftUIリスト構造はデータの行を1列で表示するためのものであるとさえ規定されています。これはMacOS上のアプリのかなり基本的なデータ構造ですが、どこにも言及されていないようです! 誰かがこれに光を当てることができますか?まだ準備ができていないのではないでしょうか…。
12 macos  swiftui 

3
SwiftUI:常に自動プレビュー更新が一時停止されました
私は既存のアプリ、基本的には買い物リストアプリを持っていますが、それに甘い甘いSwiftUIのロビンを追加しようとしています。 私の問題は、リアルタイムプレビューの更新が機能しないことです。「自動プレビューの更新が一時停止しました」という警告が継続的に表示されます。再開ボタンを押すと、アプリがビルドされ、現在のビューが表示され、その警告がすぐに再び表示されます。再開ボタンを使用しないと、キャンバスに反映されたコードの変更を確認できません。 これはXcode 11.1と11.2ベータ2で発生しています。SOでも文字通りこれに関する言及はありません。AppleのDevフォーラムには回答のないスレッドが1つあります。
12 xcode  swiftui 

3
SwiftUIで新しいビューを表示する
ボタンをクリックしてpresent modally、UIKitのように新しいビューを表示したい 「シートを使用して新しいビューを表示する方法」は既に見ましたが、モーダルシートとしてメインビューにアタッチしたくありません。 またNavigationLink、新しいビューと古いビューにナビゲーション関係を持たせたくないので、は使いたくありません。 ご協力いただきありがとうございます...
11 ios  swiftui 

3
SwiftUI:ボタンのタップと長押しの両方を処理する方法?
SwiftUIにボタンがあり、「ボタンをタップ」(通常のクリック/タップ)と「長押し」で異なるアクションを実行できるようにしたいと考えています。 SwiftUIでそれは可能ですか? ここに私が今持っているボタンの簡単なコードがあります(「通常の」タップ/タッチケースのみを処理します)。 Button(action: {self.BLEinfo.startScan() }) { Text("Scan") } .disabled(self.BLEinfo.isScanning) 「longPressジェスチャー」を追加しようとしましたが、それでも「通常/短い」クリックのみが「実行」されます。これは私が試したコードです: Button(action: {self.BLEinfo.startScan() }) { Text("Scan") .fontWeight(.regular) .font(.body) .gesture( LongPressGesture(minimumDuration: 2) .onEnded { _ in print("Pressed!") } ) } ありがとう! ジェラール

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.