2017-05-31 15 views
1

私はテーブルビューでtableviewcell.xibを使用しています。私はコメントボタンを持っているので、それをクリックすると別のページに移動してコメントすることができます。それは、サービスコールで更新せずにコメントカウント値を更新したいという点で、テーブルビューのページになります。ここで私はcell.Pleaseを更新するためのこのコードを追加する必要があります。迅速に3のtableviewのtableviewcellの特定の行を更新しますか?

 let indexPath = IndexPath(item: sender.tag, section: 0) 
self.tableView.reloadRows(at: [indexPath], with: .automatic) 

私はあなたがNSNotificationを使用することができ、この

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
    let commentPage = storyBoard.instantiateViewController(withIdentifier: "postCommentsPage") as! PostCommentViewController 
    self.present(commentPage, animated: false, completion:nil) 
+0

このコメント画面にどのように移動しているのかを質問します。また、行を再ロードしていない場合は何もしないので、データソースを変更しましたか? –

+0

また、データソースの配列についても変更しましたか? –

+0

@NiravD。私は何を求めているのか理解していない。私はデータソース内の何も変更していません –

答えて

2

UpdateCommentCountのような1 を作り、あなたのPostCommentViewControllerタイプUpdateCommentCountの1つのインスタンスプロパティを作成中に、その後、このtableViewを持っているあなたのコントローラーとそのプロトコルを実装し、またあなたのtableController中の一つの特性を宣言することですIntと入力すると、タップ行の参照が保持されます。あなたが今、あなたのPostCommentViewController

class YourController: UIViewController, UpdateCommentCount, UITableViewDelegate, UITableViewDataSource { 

    var currentCommentRow = 0 

    //Your other methods 

    func commentButtonAction(_ sender: UIButton) { 
     currentCommentRow = sender.tag 
     let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
     let commentPage = storyBoard.instantiateViewController(withIdentifier: "postCommentsPage") as! PostCommentViewController 
     commentPage.commentDelegate = self 
     self.present(commentPage, animated: false, completion:nil) 
    } 

    func updateComment(with count:Int) { 
     let dic = yourArray[self.currentCommentRow] 
     dic["commentCount"] = count 
     yourArray[self.currentCommentRow] = dic 
     let indexPath = IndexPath(item: self.currentCommentRow, section: 0) 
     self.tableView.reloadRows(at: [indexPath], with: .automatic) 
    } 

を提示しているところPostCommentViewControllerに1を宣言する今

protocol UpdateCommentCount { 
    func updateComment(with count:Int) 
} 

yourControllerでこのUpdateCommentCountを実装し、タップ行の参照を保持するために1つのIntプロパティを追加し、ボタンアクション内側に設定インスタンスのプロパティcommentDelegateのタイプがUpdateCommentCountであり、その後、正常にコメントを投稿すると、その委譲メソッドが呼び出されます。首尾よく新しいコメントを投稿した後

var commentDelegate: UpdateCommentCount 

コールupdateComment

commentDelegate.updateComment(with: newCount) 
+0

私はスクロールtableview値が更新された値を表示していない戻って戻ります –

+0

@UmaMadhavi配列の値を正しく変更した場合、配列内の値を変更しました。 –

0

のようにナビゲートしています。そのテーブルビューのviewDidLoadメソッドで通知を登録します。下記のようにビューを表示する前に通知を送信する。

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
    let commentPage = storyBoard.instantiateViewController(withIdentifier: "postCommentsPage") as! PostCommentViewController 
NotificationCenter.default.post(name: Notification.Name(rawValue: myNotificationKey), object: self) 
    self.present(commentPage, animated: false, completion:nil) 

通知呼び出し関数のリロードテーブルビューより。あなたがする必要がどのような

関連する問題