2016-05-18 3 views
1

私はリクエストを作成しましたが、応答で成功メッセージが表示されるときにpopViewしたいと思います。ここに私のコードは次のとおりです。popViewControllerがiOSのNSURLSessionDataTaskブロックで動作していません

NSURLSession *session = [NSURLSession sharedSession]; 
NSString *baseURLRequest = [NSString stringWithFormat:@"%@/email_addr=%@",mySession.baseURL,self.txtEmail.text]; 
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:baseURLRequest] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
    NSDictionary *dict = [json objectForKey:@"result"]; 
    NSString *msg = [dict objectForKey:@"msg"]; 

     if ([[dict objectForKey:@"status"] isEqualToString:@"success"]) 
     { 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       [self showMesssgeonAlert:@"Success"]; 
       [self hideProgress]; 

       [self.navigationController popViewControllerAnimated:YES]; 
      }); 
     } 
     else 
     { 
     } 
}]; 
[dataTask resume]; 
以下

動作していない、

[self.navigationController popViewControllerAnimated:YES]; 

誰もがなぜこれが起こっているのアイデアを持っていますか? UINavigation controllerviewControllersと同じです。ありがとう、助けてください。

+0

([[dict objectForKey:@ "status"] isEqualToString:@ "success"]) .navigationcontrollerがnilでない場合 – Rajesh

+1

[self showMesssgeonAlert:@ "Success"];をチェックすると、 'self.navigationController'がnilであるかどうかを確認します。 –

+0

;と[self hideProgress];メソッドはあなたのnavigationControllerがゼロかもしれないことを親切にチェックします。ストーリーボードにナビゲーションコントローラーを埋め込んでください。??? – luckyShubhra

答えて

-2

@DevTest [self.navigationController popViewControllerAnimated:YES]を挿入できません。ディスパッチキュー内にキューが存在しないので、キューはviewcontrollerをポップしません。したがって、サイドディスパッチキューを設定します。

+0

これは正しい 'dispatch_async(dispatch_get_main_queue()'の中にあります。 –

関連する問題