【发布时间】:2018-10-31 00:33:49
【问题描述】:
请帮助我了解我缺少什么?
故事板设置:
ViewController -> TabBarController -> NavigationController 包含一个 TableViewController
从 ViewController 到 TabBarController
的标识符为“startUp”ViewController 是初始进入屏幕。 ViewController 有一个 SegmentedControl 和一个 Button
用法:用户选择其中一个片段并按下按钮。该视图应与 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 代码:
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
}
}
【问题讨论】:
标签: ios swift uitableview