我使用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)
}
}