Я пытаюсь передать переменную через несколько разных классов для использования в основных данных (отношения один ко многим).
Чтобы дать некоторый контекст того, что происходит. У меня есть tableViewController (jobs), когда пользователь нажимает на одну из ячеек, он переводит их в tabBarController с 4 viewController. Затем на первом viewController находится tableView, если пользователь щелкает по определенной ячейке, он переносит их в другую tabBarController. Я пытаюсь передать переменную
var job: Job?
с верхнего уровня до конечного tabBarController, но, похоже, он теряется при попытке передать переменную из первого TabBarcontroller во второй tabBarController. Я изо всех сил пытаюсь понять, что не так, чтобы не передавать переменную через ViewControllers.
Вот каждая из переменных ViewControllers и как я их передаю:
JobViewController:
var jobs = [Job]()
// CELL DID SELECT ROW
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let jobTab = jobTabController()
jobTab.job = jobs[indexPath.row]
show(jobTab, sender: self)
}
Это первая вкладка BarController - jobTabController:
var job: Job?
Это первый ViewController, который подключен к jobTabController - jobInfo:
// OBSERVE JOB
var job: Job? {
let tabBarController = self.tabBarController as! jobTabController
return tabBarController.job
}
// CELL DID SELECT ROW
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section == 1 {
if indexPath.row == 1 {
let camLens = cameraLensesTabController()
camLens.job = self.job
show(camLens, sender: self)
}
}
}
ПРИМЕЧАНИЕ. В этом случае переменная кажется потерянной - между jobInfo и cameraLensesTabController - имя: cameraLensesTabController
var job: Job?
Тогда это мой viewController, который подключен к cameraLensesTabController - cameraController:
var job: Job?
@IBAction func HandleAddCamera(sender : UIButton) {
let newCamera = newCameraController()
newCamera.job = self.job
let navController = UINavigationController(rootViewController: newCamera)
present(navController, animated: true, completion: nil)
}
На cameraController у меня есть кнопка добавления, которая переводит вас в другой ViewController с именем newCameraController , где вы можете добавлять элементы в tableView на cameraController:
var job: Job?