调用表重新加载时,UITableViewController静态单元格没有隐藏

时间:2018-07-25 09:41:42

标签: ios swift uitableview

我使用backButton和静态UITableViewController实现了注册页面。用户可以通过自定义(电子邮件,密码,确认密码)和Facebook等两种方式进行注册。注册成功后,通过在UITablViewCells方法下隐藏UITableViewController来在相同的UITableViewCell中显示个人资料页面。

当我使用自定义注册时,它可以正常工作。但是问题在于用户点击Facebook按钮

tableView(_:heightForRowAt:)

它从Facebook返回所有用户详细信息,然后我使用Alamofire通过POST方法将Facebook用户详细信息传递到我们的服务器中

if((FBSDKAccessToken.current()) != nil){
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).start(completionHandler: { (connection, result, error) -> Void in
            self.apiActivityIndicator.hideActivityIndicator(currentView: self.view) 
            if (error == nil){
                self.dismiss(animated: true, completion: nil)
                DispatchQueue.main.async {
                    self.postFacebookDataToServer(facebookData: self.dictionaryUserDetails)

                }
            }

此后,我需要重新加载UITableView api响应成功。但是,UITableView正在重新加载一些仍然存在的UITableViewCells,但是当我们在顶部位置滚动时,它正在隐藏并准确显示我想要的内容。这是

            Alamofire.request(urlFacebook, method: .post, parameters: parameterFacebook,encoding: JSONEncoding.default, headers: nil).responseJSON {  
            response in
            switch response.result {
            case .success:
                print(response)

                self.isFacebookSuccess = true
                isUserLogIn = true
                UserDefaults.standard.set(isUserLogIn, forKey: Utility.userDefaultsType.kUserLog)
                UserDefaults.standard.synchronize()
                if (isUserLogIn) {
                    self.loadProfileBottomView()
                }

                DispatchQueue.main.async {
                    self.tableView.reloadData()
                }

                break
            case .failure(let error):

                print(error)
            }
        }

0 个答案:

没有答案