如何将使用 imagepicker 上传的照片另存为新照片post?

How to save the photo you uploaded with imagepicker as a new post?

我有一个 tableViewviewController。我需要添加带有图像选择器的照片(我已经这样做了),然后我需要将其作为新的 post 描述保存在我的 tableView 中。最好的方法是什么?

我已经在 tableView 中找到了如何将文本添加为​​新单元格的信息,但这不是我想要的。

这是我的代码

@IBAction func photoButton(_ sender: UIButton){  
    let vc = UIImagePickerController()
    vc.sourceType = .photoLibrary //PHPpicker
    vc.delegate = self
    vc.allowsEditing = true
    present(vc,animated: true)
 }

    
@IBAction func saveButtonPressed(_ sender: UIButton){

}
extension NewPostScreenController : UIImagePickerControllerDelegate , UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        
        UIImagePickerController.InfoKey(rawValue: "")
        
        if let image = info[UIImagePickerController.InfoKey(rawValue: "UIImagePickerControllerEditedImage")] as? UIImage {
            ChangeImage.image = image
        }
        picker.dismiss(animated: true, completion: nil)
        
    }
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        picker.dismiss(animated: true, completion: nil)
    }
}

我应该添加什么到 saveButtonPressed

我的建议是确保将问题分解成多个部分。您的解决方案可能至少需要以下几点:

  1. 您需要一个 delegate/protocol 方法来将 UIPickerView 获得图像的信号发回给 tableView。然后您需要将该图像以某种方式传递回 tableView。
  2. 在分配给 tableView 的 TableViewDataSource 中,您需要接收信号并对其进行处理:
  3. 您可能需要包含 UIImageView 子视图或 UIImage 属性 的 UITableViewCell 的子class。有很多方法可以解决这个问题,但最简单的方法可能是在故事板中使用原型单元并执行自动布局 + 连接插座。其他可能性是创建一个带有 xib 的 CocoaTouch class 并在您的 cellForRowAt 函数中调用它。
  4. 您需要在 TableViewDelegate 的 cellForRowAt 中的自定义 UITableViewCell 中设置 UIImage
  5. 当您收到收到新图像的信号时,您可能需要在委托函数中调用 tableView.reloadTable,以便在用户完成后重新加载。

请记住,您需要在 tableView 中实现一个 UITableViewCell 来显示 posts。

现在,要保存 post 并且关闭应用程序时不会删除这些内容,我建议使用 UserDefaults 或 Core Data 仅在您的 phone 中保存 post,或者使用 Firebase 将 post 保存在数据云中。 使用 firebase,您无需编写服务器代码即可保存数据。

Firebase 页面 https://firebase.google.com