Помогите, пожалуйста, понять, чего мне не хватает?
Настройка раскадровки:
ViewController -> TabBarController -> NavigationController, который содержит TableViewController
Существует переход с идентификатором " startUp " от ViewController к TabBarController
ViewController - это экран начального ввода.
ViewController имеет SegmentedControl и кнопку
ИСПОЛЬЗОВАНИЕ: пользователь выбирает один из сегментов и нажимает кнопку. Представление должно перейти к TableViewController и заменить NavigationItem.Title заголовком из сегмента SegmentedControl, который был выбран.
ПРОБЛЕМА: данные не передаются из ViewController в TableViewController (и через TabBarController и NavigationController). Я всегда заканчиваю с пустым заголовком заголовка на TableViewController. За последние несколько дней я внимательно просмотрел пару десятков инструкций, как здесь, так и в других местах в Интернете, используя segue и другие методы. На данный момент, кажется, ничего не работает, и у меня кружится голова (и, возможно, что-то упущено, действительно, очень просто).
Вот как код "сидит"
Код ViewController:
import UIKit
class ViewController: UIViewController {
var someData: String? = ""
@IBOutlet weak var cpChoice: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func startBut(_ sender: Any) {
performSegue(withIdentifier: "startUp", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let theIndex = cpChoice.selectedSegmentIndex
someData = cpChoice.titleForSegment(at: theIndex)
print(someData!) //outputs correctly to console
if segue.destination is CheckpointVC
{
let vc = segue.destination as? CheckpointVC
vc?.data = someData!
}
}
}
TableViewController Code:
import UIKit
class CheckpointVC: UITableViewController {
var data: String = ""
@IBOutlet weak var theHeader: UINavigationItem!
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = data
//theHeader.title = data
}
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 0
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 0
}
}