ReloadData()が表示されないのはなぜですか? -- ios フィールド と swift フィールド 関連 問題

Why won't reloadData() refresh the view?












0
vote

問題

日本語
<事前> <コード> @IBAction func btnDeleteCell(_ sender: UIButton) { let UC = UserControllers() UC.deleteSocialPlatform(indexRow) DispatchQueue.main.async { self.parentCollectionView!.reloadData() } print(indexRow) }

btnDeleteCell 関数は、CollectionViewCellクラスの内側にありますが、 parentCollectionView はセルを作成するときに設定されます。

<事前> <コード> func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { var cell: SocialPlatformCollectionViewCell //if is first element of array if indexPath.row == 0 { cell = cvSocialPlatform.dequeueReusableCell(withReuseIdentifier: "DefaultCell", for: indexPath) as! SocialPlatformCollectionViewCell cell.setupCommon("socialmedialinkgrey", "defaultCell") cell.setupbtnInfoText("Add new link") cell.parentCollectionView = self.cvSocialPlatform } else { cell = cvSocialPlatform.dequeueReusableCell(withReuseIdentifier: "AddedCell", for: indexPath) as! SocialPlatformCollectionViewCell cell.setupCommon("socialmedialink", "addedCell") cell.setupInfoTextStr(userSocialPlatform[indexPath.row]) cell.setupIndex(indexPath.row) cell.parentCollectionView = self.cvSocialPlatform } return cell }

特定のセルの削除ボタンをクリックするたびに、それぞれのテキスト配列が削除され、Firebaseの削除プロセスは機能しますが、コレクションビューはビューコントローラ内でそれ自体を更新できません。私はここで何か悪いことをしていますか?

<コード> UserControllers :

<事前> <コード> func deleteSocialPlatform(_ indexRow: Int) { let userRef = dbManager.databaseRef.child("users").child(dbManager.currentUserID!) userRef.observeSingleEvent(of: .value) { (snapshot) in let value = snapshot.value as? NSDictionary var socialplatformArray = value?["socialplatform"] as! Array<String> print(socialplatformArray) socialplatformArray.remove(at: indexRow) let newValue = ["socialplatform": socialplatformArray] userRef.updateChildValues(newValue) }
英語
@IBAction func btnDeleteCell(_ sender: UIButton) {     let UC = UserControllers()      UC.deleteSocialPlatform(indexRow)      DispatchQueue.main.async {         self.parentCollectionView!.reloadData()     }      print(indexRow) } 

The btnDeleteCell function is inside of my collectionviewcell class whereas the parentCollectionView is set when creating the cell:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {     var cell: SocialPlatformCollectionViewCell      //if is first element of array     if indexPath.row == 0     {         cell = cvSocialPlatform.dequeueReusableCell(withReuseIdentifier: "DefaultCell", for: indexPath) as! SocialPlatformCollectionViewCell          cell.setupCommon("socialmedialinkgrey", "defaultCell")         cell.setupbtnInfoText("Add new link")         cell.parentCollectionView = self.cvSocialPlatform     }     else     {         cell = cvSocialPlatform.dequeueReusableCell(withReuseIdentifier: "AddedCell", for: indexPath) as! SocialPlatformCollectionViewCell          cell.setupCommon("socialmedialink", "addedCell")         cell.setupInfoTextStr(userSocialPlatform[indexPath.row])         cell.setupIndex(indexPath.row)         cell.parentCollectionView = self.cvSocialPlatform     }      return cell } 

Whenever the user clicks on the delete button on a specific cell, the respective text array will be deleted, and the delete process on the firebase works, but somehow the collection view won't refresh itself in the view controller. Am I doing something wrong here?

delete function in UserControllers:

func deleteSocialPlatform(_ indexRow: Int) {     let userRef = dbManager.databaseRef.child("users").child(dbManager.currentUserID!)      userRef.observeSingleEvent(of: .value) { (snapshot) in     let value = snapshot.value as? NSDictionary      var socialplatformArray = value?["socialplatform"] as! Array<String>      print(socialplatformArray)      socialplatformArray.remove(at: indexRow)     let newValue = ["socialplatform": socialplatformArray]     userRef.updateChildValues(newValue)     } 
</div
     
         
         

回答リスト

0
 
vote
<事前> <コード> func deleteSocialPlatform(_ indexRow: Int, completion:@escaping(Array<String>) -> ()) { let userRef = dbManager.databaseRef.child("users").child(dbManager.currentUserID!) userRef.observeSingleEvent(of: .value) { (snapshot) in let value = snapshot.value as? NSDictionary var socialplatformArray = value?["socialplatform"] as! Array<String> print(socialplatformArray) socialplatformArray.remove(at: indexRow) let newValue = ["socialplatform": socialplatformArray] userRef.updateChildValues(newValue) completion(socialplatformArray) } } <事前> <コード> @IBAction func btnDeleteCell(_ sender: UIButton) { let UC = UserControllers() let parentViewController = PatientPersonalInfoViewController() UC.deleteSocialPlatform(indexRow) { (socialplatformArray) in parentViewController.userSocialPlatform = socialplatformArray } DispatchQueue.main.async { self.parentCollectionView!.reloadData() } print(indexRow) }
 
 func deleteSocialPlatform(_ indexRow: Int, completion:@escaping(Array<String>) -> ())     {         let userRef = dbManager.databaseRef.child("users").child(dbManager.currentUserID!)          userRef.observeSingleEvent(of: .value) { (snapshot) in         let value = snapshot.value as? NSDictionary          var socialplatformArray = value?["socialplatform"] as! Array<String>          print(socialplatformArray)          socialplatformArray.remove(at: indexRow)         let newValue = ["socialplatform": socialplatformArray]         userRef.updateChildValues(newValue)         completion(socialplatformArray)          }      } 
 @IBAction func btnDeleteCell(_ sender: UIButton) {           let UC = UserControllers()         let parentViewController = PatientPersonalInfoViewController()          UC.deleteSocialPlatform(indexRow)         {             (socialplatformArray) in              parentViewController.userSocialPlatform = socialplatformArray          }          DispatchQueue.main.async {             self.parentCollectionView!.reloadData()         }          print(indexRow)       } 
</div
 
 
         
         

関連する質問

0  AlamoFireクロージャからメインスレッドへのデータを移行する方法  ( How to migrate data from alamofire closure to main thread ) 
Alamofireを使用してランダムなウェブページへの要求を生成しています。私は見出しの話のタイトルをつかみ、メインスレッドに保存してメンセルに渡したいです。 <事前> <コード> @Entity @Table(name="CARS") public cl...

-3  セグメント化コントロールデザインを正方形から円に変更する方法  ( How to change segmented control design from square to circle ) 
この写真のように、セグメント化コントロールデザインを正方形から円に変更する方法 この写真から この写真に <事前> <コード> @IBOutlet var segmentedcontrol: UISegmentedControl! override ...

2  12HR日付フォーマットを使用する場合は、日付形式が常にNILを返します。  ( Date format always return nil when using 12hr date format ) 
この質問はすでにここで回答を持っています IOS NSDate比較は、次のように機能します24時間の日付設定はオンとオフの間に切り替わりますか? (2回答) ...

20  Timer.ScheduledTimerはSwift 3では機能しません  ( Timer scheduledtimer does not work in swift 3 ) 
メソッド func adjustmentBestSongBpmHeartRate() を1.1秒ごとに呼び出したい。私はタイマーを使いましたが、うまくいきません。私は文書を読み、たくさんのサンプルコードを見つけました、それはまだ仕事をします!私が逃したことはあ...

0  DidSelectrowat IndexPathで正しいエンティティを選択する方法  ( How to select the correct entity in didselectrowat indexpath ) 
My tableview は、 name 属性によってソートされています。だから私が "Hanna"という名前を入力したら、 tableview は次のようになります。 ベル Hanna しかし私が1つのセルを選択すると、私が入力した順序のた...

4  SWIFT:WebViewの<img>または画像サイズのみを変更する方法  ( Swift how to change only img or image sizes in webview ) 
私はサーバーからHTMLを取得して、それをUIWebViewに表示しています。要件のため、「スケールページ」オプションは選択されません。 UIWebView幅は画面幅と等しく、コンテンツによって高さは異なります。 HTMLのイメージタグには、WebViewのビ...

439  Swiftプログラミング言語で文字列のn番目の文字を入手する  ( Get nth character of a string in swift programming language ) 
どのようにして文字列のN番目の文字を入手できますか?私は運さないでブラケット(<コード> [] )アクセサを試しました。 <事前> <コード> stuff = function (thing, callback) { var inputs = $('d...

0  SwiftのTableViewでフッターを使用してセクションの下にラベルをアップロードする方法は?  ( How do i can upload label under the sections by using footer in the tableview in ) 
スタックオーバーフロー。 私はそれらのフッターが既知のフッターとして細胞の下のラベルを作るための多くの方法を持っているかもしれないことを理解しています。 index.rowを使用してフッターを作成する方法を知っています。自動タイトル、イメージ、アレイを使...

0  Xcode 10.2をXcode 11.2.1に更新しました。これにより、元のSWIFTプロジェクトを実行できなくなりました。  ( I updated xcode 10 2 to xcode 11 2 1 resulting in the original swift project un ) 
信号による誤差の誤差:アボートトラップ:6は解決されていません。特定のエラーログは次のとおりです。 <事前> <コード> 2. While running pass #0 SILModuleTransform "SerializeSILPass". 3. ...

12  UIBUTTONのUIControlStateの「アプリケーション」の使用は何ですか?  ( Whats the use of uicontrolstate application of uibutton ) 
Apple Doc を通過しましたが、その アプリケーションの使用に利用可能な追加の制御状態フラグ。 その単なるゲッター方式で、いつ設定されますか? ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有