MVVMでの実装方法について質問です。

ModelでAFNetWorkingを使用し、JSONを取得しています。
AFNetWorkingの非同期通信が終了したタイミングでViewのテーブルをreloadDataしたいのですが、MVVMの場合ModelからViewを操作することは無いと認識しています。
この場合のViewを更新する方法を教えていただきたいです。

// Model
[manager POST:testAPI
   parameters:parameters
      success:^(NSURLSessionDataTask *task, id responseObject)
 {

     // レスポンスをDBに登録

     // TODO: DB登録後、Viewの更新処理を実行したい


 } failure:^(NSURLSessionDataTask *task, NSError *error)
 {
 }];

<追記>
【delegate】
Viewでmodel.delegate = self としてもAFNetWorkingのブロックスが実行されるときにはnilとなってしまいます…
Modelのインスタンス作成でミスしているだけでした。

【blocks】
View→ViewModel→Modelの流れなので......

// View
    [_viewModel sampleMethod1:^{
        [self refresh];
    }];

// ViewModel 
- (void) sampleMethod1:(void (^) (void)) refreshView {
    [_model sampleMethod2:^{
    refreshView();
}];

// Model 
- (void) sampleMethod2:(void (^) (void)) refreshView {
    ..........

    [manager POST:testAPI
       parameters:parameters
          success:^(NSURLSessionDataTask *task, id responseObject)
     {

         // レスポンスをDBに登録する処理を実行
         .......

         // TODO: 上記DB登録処理後、Viewの更新処理を実行したい
         refreshView();

     } failure:^(NSURLSessionDataTask *task, NSError *error)
     {
     }];

}
となり、VからVMに渡した処理をさらにMに渡して処理する事になり冗長な気がしました。
もっと綺麗な書き方があると思うのですが、分かりません…。

<追記2>
Blocksの場合の綺麗な書き方は分かりませんが、delegateで実装できそうでした。