I'm working on a project, where Initial View
has a PickerView
, when we select something. I'm passing this data as a String
to TabBarController
and then from the TabBarController
to every 5 of his "childrens".
To this moment everything works fine.
Now, by clicking a TableViewCell
I want to pass data from one of TabBarController's
children (ViewController
) to a non-TabBarController View (FullNewsViewController
) and show this View. I try few methods and nothing works. Can you help me?
I'm working on Swift 5 and Xcode 10.2.
This is my View Controller from which I want to download the "FinalTeam":
import UIKit
import FirebaseDatabase
class ViewController: UIViewController, UITableViewDelegate,
UITableViewDataSource {
@IBOutlet weak var imageView: UIImageView!
var ref: DatabaseReference?
var refHandle: DatabaseHandle?
var news = [String]()
var FinalTeam = ""
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var infoLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let tabbar = tabBarController as! TabBarViewController
var FinalTeam = tabbar.Team
// infoLabel.text = String(describing: tabbar.Team)
infoLabel.text = FinalTeam
tableView.delegate = self
tableView.dataSource = self
ref = Database.database().reference()
switch FinalTeam {
case "Lech Poznań":
imageView.image = UIImage(named: "leszek")
refHandle = ref?.child("News/Lech/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Legia Warszawa":
imageView.image = UIImage(named: "legia")
refHandle = ref?.child("News/Legia/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Lechia Gdańsk":
imageView.image = UIImage(named: "lechia")
refHandle = ref?.child("News/Lechia/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Wisła Płock":
imageView.image = UIImage(named: "wisla_p")
refHandle = ref?.child("News/Wisła_P/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Wisła Kraków":
imageView.image = UIImage(named: "wisla_k")
refHandle = ref?.child("News/Wisła_K/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Jagiellonia Białystok":
imageView.image = UIImage(named: "jaga")
refHandle = ref?.child("News/Jaga/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Piast Gliwice":
imageView.image = UIImage(named: "piast")
refHandle = ref?.child("News/Piast/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Pogoń Szczecin":
imageView.image = UIImage(named: "pogon")
refHandle = ref?.child("News/Pogoń/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Korona Kielce":
imageView.image = UIImage(named: "korona")
refHandle = ref?.child("News/Korona/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Cracovia":
imageView.image = UIImage(named: "cracovia")
refHandle = ref?.child("News/Cracovia/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Śląsk Wrocław":
imageView.image = UIImage(named: "slask")
refHandle = ref?.child("News/Śląsk/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Miedź Legnica":
imageView.image = UIImage(named: "miedz")
refHandle = ref?.child("News/Miedź/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Zagłębie Sosnowiec":
imageView.image = UIImage(named: "zaglebie_s")
refHandle = ref?.child("News/Zagłębie_S/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Zagłębie Lubin":
imageView.image = UIImage(named: "zaglebie_l")
refHandle = ref?.child("News/Zagłębie_L/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Górnik Zabrze":
imageView.image = UIImage(named: "gornik")
refHandle = ref?.child("News/Górnik/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
case "Arka Gdynia":
imageView.image = UIImage(named: "arka")
refHandle = ref?.child("News/Arka/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
default:
imageView.image = UIImage(named: "lech")
refHandle = ref?.child("News/Lech/Naglowek").observe(.value, with: { (snapshot) in
let post = snapshot.value as? String
if let actualPost = post {
self.news.append(actualPost)
self.tableView.reloadData()
}
})
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return news.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "newsCell")
cell?.textLabel?.text = news[indexPath.row]
return cell!
}
}
This is my FullNewsViewController where I want to send this data:
import UIKit
import FirebaseDatabase
class FullNewsViewController: UIViewController,UITextViewDelegate {
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var contentTextView: UITextView!
@IBAction func button(_ sender: Any) {
navigationController?.popViewController(animated: true)
dismiss(animated: true, completion: nil)
}
var ref: DatabaseReference?
var refHandleTitle: DatabaseHandle?
var refHandleContent: DatabaseHandle?
var news = [String]()
var FinalTeam = ""
override func viewDidLoad() {
super.viewDidLoad()
ref = Database.database().reference()
contentTextView.delegate = self
switch FinalTeam {
case "Lech Poznań":
//imageView.image = UIImage(named: "leszek")
refHandleTitle = ref?.child("News/Lech/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Lech/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Legia Warszawa":
//imageView.image = UIImage(named: "legia")
refHandleTitle = ref?.child("News/Legia/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Legia/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Lechia Gdańsk":
//imageView.image = UIImage(named: "lechia")
refHandleTitle = ref?.child("News/Lechia/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Lechia/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Wisła Płock":
//imageView.image = UIImage(named: "wisla_p")
refHandleTitle = ref?.child("News/Wisła_P/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Wisła_P/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Wisła Kraków":
//imageView.image = UIImage(named: "wisla_k")
refHandleTitle = ref?.child("News/Wisła_K/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Wisła_K/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Jagiellonia Białystok":
//imageView.image = UIImage(named: "jaga")
refHandleTitle = ref?.child("News/Jaga/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Jaga/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Piast Gliwice":
// imageView.image = UIImage(named: "piast")
refHandleTitle = ref?.child("News/Piast/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Piast/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Pogoń Szczecin":
// imageView.image = UIImage(named: "pogon")
refHandleTitle = ref?.child("News/Pogoń/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Pogoń/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Korona Kielce":
// imageView.image = UIImage(named: "korona")
refHandleTitle = ref?.child("News/Korona/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Korona/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Cracovia":
//imageView.image = UIImage(named: "cracovia")
refHandleTitle = ref?.child("News/Cracovia/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Cracovia/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Śląsk Wrocław":
// imageView.image = UIImage(named: "slask")
refHandleTitle = ref?.child("News/Śląsk/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Śląsk/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Miedź Legnica":
// imageView.image = UIImage(named: "miedz")
refHandleTitle = ref?.child("News/Miedź/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Miedź/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Zagłębie Sosnowiec":
// imageView.image = UIImage(named: "zaglebie_s")
refHandleTitle = ref?.child("News/Zagłębie_S/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Zagłębie_S/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Zagłębie Lubin":
// imageView.image = UIImage(named: "zaglebie_l")
refHandleTitle = ref?.child("News/Zagłębie_L/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Zagłębie_L/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Górnik Zabrze":
// imageView.image = UIImage(named: "gornik")
refHandleTitle = ref?.child("News/Górnik/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Górnik/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
case "Arka Gdynia":
// imageView.image = UIImage(named: "arka")
refHandleTitle = ref?.child("News/Arka/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Arka/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
default:
// imageView.image = UIImage(named: "lech")
refHandleTitle = ref?.child("News/Lech/Naglowek").observe(.value, with: { (snapshot) in
let titlePost = snapshot.value as? String
if let actualTitlePost = titlePost {
self.news.append(actualTitlePost)
}
self.titleLabel.text = titlePost
})
refHandleContent = ref?.child("News/Lech/Tresc").observe(.value, with: { (snapshot) in
let contentPost = snapshot.value as? String
if let actualContentPost = contentPost {
self.news.append(actualContentPost)
}
self.contentTextView.text = contentPost
})
}
}
}