2014-11-24 98 views
1

在視圖控制器中有一個UITableView,在上一節的最後一行,有一個Facebook登錄和註銷按鈕作爲切換。如果用戶登錄,會自動退出登錄,反之亦然。問題是,當登錄控制在Safari中退出應用程序然後返回並查看自動刷新,但註銷時UITableView不會重新加載。以下是我使用的代碼。刷新UITableView無法正常工作

NSHTTPCookie *cookie; 
     NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
     for (cookie in [storage cookies]) 
     { 
      NSString* domainName = [cookie domain]; 
      NSRange domainRange = [domainName rangeOfString:@"facebook"]; 
      if(domainRange.length > 0) 
      { 
       [storage deleteCookie:cookie]; 
       isFb = 0; 
       [tableView_detailsEdit reloadData]; 
       [[FBSession activeSession] closeAndClearTokenInformation]; 
      } 
     } 
     isFb = 0; 

     [[FBSession activeSession] closeAndClearTokenInformation]; 

     [tableView_detailsEdit reloadData]; 

問題是UITableView委託方法沒有被調用。因此,登錄後,表格視圖中單元格上的文本不會發生變化。 請指導以上內容。

+0

你有沒有爲自己設定(視圖控制器)或任何對象實現的委託方法如表視圖的委託? – HAS 2014-11-24 07:27:32

+0

@HAS是的委託設置,這就是爲什麼tableview工作,如果我滾動uitableview然後值改變,但不是通過調用reloadData自動。 – 2014-11-24 07:50:11

回答

0

使用以下

[[NSOperationQueue mainQueue] addOperationWithBlock:^ { 

    [tableView_detailsEdit reloadData]; 

}]; 

或者

double delayInSeconds = 2.0; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    [tableView_detailsEdit reloadData]; 
});