【发布时间】:2018-09-16 01:28:19
【问题描述】:
我使用新闻提要制作应用程序,该应用程序必须在其他 ViewController 上打开。但是不能通过segue传递数据。
带有新闻源的视图控制器
class SecondViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var titlenews = ""
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "newsfeedCell", for: indexPath) as! NewsFeedCell
cell.newsfeed_title.text = self.news?[indexPath.item].headline
cell.newsfeed_topic.text = self.news?[indexPath.item].topic
cell.newsfeed_time.text = timetime(from: (self.news?[indexPath.item].time)!)
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("tableview")
let vc = storyboard?.instantiateViewController(withIdentifier: "newsBody") as? NewsBody
vc?.labeltext = (self.news?[indexPath.item].headline)!
print((self.news?[indexPath.item].headline)!)
self.navigationController?.pushViewController(vc!, animated: true)
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.news!.count
} //number of rows
@IBOutlet weak var tableview: UITableView!
var news: [Newsfeed]? = []
override func viewDidLoad() {
super.viewDidLoad()
getJSON()
}
func getJSON(){
///Here all do right
}
}
必须从新闻提要接收数据的视图控制器
class NewsBody: UIViewController {
@IBOutlet weak var testLabel: UILabel!
var labeltext = ""
override func viewDidLoad() {
super.viewDidLoad()
print(labeltext)
testLabel.text = labeltext
}
}
print(labeltext) 表明NewsBody 接收空值或什么也不接收。
但SecondViewController 内部的print((self.news?[indexPath.item].headline)!) 表明我试图推动适当的价值。
我在此操作之间做错了什么?数据的 segue 和 pass 有什么问题?
【问题讨论】:
-
你在 storyboard 中从 viewController 到 SecondViewController 添加了 sague 吗?
-
您当前的代码中没有使用 segue。你正在用 pushViewController 的旧方式做自己,但没有做 segue。