为什么什么都没有发送到我的表视图?

时间:2018-08-06 21:06:29

标签: ios iphone swift uitableview class

我正在创建一个新闻提要,但是什么也没有发送给它。我目前正在测试Gamertag(用户名),正文和时间戳。这是我的课程:

1)NewPost(创建发送到表格视图的新帖子)

import Foundation
import UIKit
import Firebase
import FirebaseDatabase


class NewPost: UIViewController, UITextViewDelegate {


    @IBOutlet var enterGamertag: UITextField!
    @IBOutlet var enterMessage: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    //ADDTOLIST BUTTON
    @IBAction func addToList(_ sender: UIButton) {

    //        guard let userProfile = UserService.currentProfile else { 
    return }

        let postRef = 
    Database.database().reference().child("posts").childByAutoId()

        let postObject = [
//            "Gametag": [
////                "uid": userProfile.id,
////                "gamertag": userProfile.gamerTag
//            ],
            "gamerTag": enterGamertag.text as Any,
            "bodytext": enterMessage.text as Any,
            "timestamp": [".sv":"timestamp"]
            ] as [String:Any]

        postRef.setValue(postObject, withCompletionBlock: { error, ref in
            if error == nil {
                self.dismiss(animated: true, completion: nil)
            } else {
                // Handle the error
            }
        })

//        UserService.sharedInstance.validateUsername("Ninja")

    }

    //dismiss keyboard
    @IBAction func dismissKeyboard(_ sender: UITextField) {
        self.resignFirstResponder()
    }

    @IBAction func micPressed(_ sender: UIButton) {
        if sender.isSelected {
            sender.isSelected = false
        }   else {
            sender.isSelected = true
        }
    }

    @IBAction func logOutPressed(_ sender: UIButton) {

        try! Auth.auth().signOut()
//        performSegue(withIdentifier: "logOut", sender: self)


    }


}

2)feedTable(显示表格视图)

import UIKit
import Firebase


class FeedTable: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var tableFeedView: UITableView!

    var posts = [Post]()

    //VIEWDIDLOAD
    override func viewDidLoad() {
        super.viewDidLoad()


        // Hide the navigation bar on the this view controller


        tableFeedView.delegate = self
        tableFeedView.dataSource = self


        tableFeedView.register(UINib(nibName: "PostTableViewCell", bundle: nil), forCellReuseIdentifier: "customTableCell")

//        self.tableFeedView?.backgroundColor = UIColor.black
        tableFeedView.tableFooterView = UIView()

        configureTableView()

    }

    func observePosts() {

        let postRef = Database.database().reference().child("posts")

        postRef.observe(.value, with: { snapshot in

            var tempPosts = [Post]()

            for child in snapshot.children {
                if let childSnapshot = child as? DataSnapshot,
                    let dict = childSnapshot.value as? [String:Any],
                    let gamerTag = dict["gamerTag"] as? String,
                    let bodytext = dict["bodytext"] as? String,
                    let timestamp = dict["timestamp"] as? Double {

                    let post = Post(id: childSnapshot.key, gamerTag: gamerTag, bodyText: bodytext, timestamp: timestamp)
                    tempPosts.append(post)

                }
            }

            self.posts = tempPosts
            self.tableFeedView.reloadData()

        })


    }

    @IBAction func refreshTable(_ sender: UIButton) {
        tableFeedView.reloadData()
    }


    //Cell For Row At
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:PostTableViewCell = tableView.dequeueReusableCell(withIdentifier: "customTableCell", for: indexPath) as! PostTableViewCell
        cell .set(post: posts[indexPath.row])
        return cell
    }

    //Number Of Rows
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return posts.count
    }

    //Automatic Row Height
    func configureTableView() {
        tableFeedView.rowHeight = UITableViewAutomaticDimension
        tableFeedView.estimatedRowHeight = 120.0
    }


}

3)PostTableViewCell(包含文本标签的单元格)

import UIKit

class PostTableViewCell: UITableViewCell {

    @IBOutlet weak var customMessageBody: UILabel!
    @IBOutlet weak var customConsole: UILabel!
    @IBOutlet weak var ifMicUsed: UIImageView!
    @IBOutlet weak var timeAdded: UILabel!
    @IBOutlet weak var gameMode: UILabel!
    @IBOutlet weak var customGamerTag: UILabel!



    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

    func set(post:Post){

        customGamerTag.text = post.gamerTag
        customMessageBody.text = post.bodyText
        customMessageBody.text = "\(post.timestamp) minutes ago."


    }

}

0 个答案:

没有答案