【发布时间】:2016-07-01 17:49:47
【问题描述】:
使用以下教程,我尝试显示一些将填充到表格中的股票信息。我已经创建了表格视图控制器以及表格视图单元格,并将 stockTableViewCell 与表格视图单元格链接。但是我无法将主故事板上的 tableview 与自定义 table view 控制器链接。
基本上每次我尝试将它输入到自定义类字段时它都不适用,当我离开时它消失
我的问题是,我的视图控制器或表格视图单元是否有问题,或者我的情节提要中有什么配置错误?
表格视图控制器
import UIKit
class stocksTableViewController: UITableViewController{
// Mark: Properties
var stocks = [stockData]()
let stock = stockinfo()
override func viewDidLoad() {
super.viewDidLoad()
loadSampleStockData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func loadSampleStockData () {
var stock1: stockData = stockData(name: "", askPrice: "", percentageChange: "", stockTicker: "")
var stock2: stockData = stockData(name: "", askPrice: "", percentageChange: "", stockTicker: "")
var stock3: stockData = stockData(name: "", askPrice: "", percentageChange: "", stockTicker: "")
stock.getInfo("FB") {(name, price, change) in dispatch_async(dispatch_get_main_queue(),{
stock1 = stockData(name: name, askPrice: price, percentageChange: change, stockTicker: "FB")})
}
stock.getInfo("MSFT") {(name, price, change) in dispatch_async(dispatch_get_main_queue(),{
stock2 = stockData(name: name, askPrice: price, percentageChange: change, stockTicker: "MSFT")})
}
stock.getInfo("APPL") {(name, price, change) in dispatch_async(dispatch_get_main_queue(),{
stock3 = stockData(name: name, askPrice: price, percentageChange: change, stockTicker: "APPL")})
}
stocks += [stock1, stock2, stock3]
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return stocks.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "stockViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! stockTableViewCell
let stock = stocks[indexPath.row]
cell.stockName.text = stock.name
cell.stockPercentage.text = stock.percentageChange
cell.stockDollarChange.text = stock.askPrice
cell.stockTicker.text = stock.stockTicker
return cell
}
}
表格视图单元格
import Foundation
import UIKit
class stockTableViewCell: UITableViewCell {
// Properties
@IBOutlet weak var stockTicker: UILabel!
@IBOutlet weak var stockPercentage: UILabel!
@IBOutlet weak var stockName: UILabel!
@IBOutlet weak var stockDollarChange: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization Code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
【问题讨论】:
-
你在哪里打电话给
tableView.reloadData()? -
你指的是 loadSampleStockData(),我在 viewDidLoad() 函数中调用了它,还是你问的不是这个?
-
我指的是上面的代码
-
在那种情况下,我不相信我会这样做!感谢您了解这一点。
标签: ios swift uitableview uiviewcontroller