我正在尝试在UIViewController内的UITableView中设置单元格的文本,并且文本没有被更新。此外,即使我有两个打印语句,也没有打印任何内容,因此似乎没有调用这些函数。这是我的代码:
class HomePageViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate {
@IBOutlet weak var flaggedTable: UITableView!
@IBOutlet weak var recentTable: UITableView!
var flaggedSerials = [DataCell]()
var recentlyViewedSerials = [DataCell]()
override func viewDidLoad() {
super.viewDidLoad()
addSerial("FCGPR0TUG07P", status: "Shipped", issues: 6, reworks: 2, index: 0, flagged: false)
}
func addSerial(serial: String, status: String, issues: Int, reworks: Int, index: Int, flagged: Bool)
{
var currentSerial = DataCell()
currentSerial.serial = serial
currentSerial.status = status
currentSerial.issues = "\(issues) Reported Issues"
currentSerial.reworks = "\(reworks) Reported Reworks"
currentSerial.index = index
if flagged == true {
flaggedSerials.append(currentSerial)
}
else {
recentlyViewedSerials.append(currentSerial)
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
println(recentlyViewedSerials.count) // This line does not get printed
return recentlyViewedSerials.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("FlaggedCell", forIndexPath: indexPath) as! UITableViewCell
addSerial("FCGPR0TUG07P", status: "Shipped", issues: 6, reworks: 2, index: 0, flagged: false)
println(recentlyViewedSerials[indexPath.row].serial) // This line does not get printed
cell.textLabel?.text = recentlyViewedSerials[indexPath.row].serial
return cell
}
}
答案 0 :(得分:5)
用这一行替换类定义行:
ggplot(mtcars, aes(factor(carb))) +
geom_bar(width = 1.1, aes(x = factor(carb), fill = ifelse(mtcars$carb %in% c(1,3,6), "blue", "transparent"))) +
guides(fill = FALSE) +
geom_bar(width = 0.7) +
scale_fill_manual(values = c("transparent", "blue")) +
coord_flip()
另请记住将tableView的public void main() {
List<String> l = new ArrayList<String>();
l.add("apple");
l.add("balala");
A a = new A();
a.member = l;
for (String s : a.member)
system.println(s);
}
}
和class HomePageViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource {
属性设置为self。
您可以使用界面构建器或使用viewDidLoad方法中的代码执行此操作:
delegate
答案 1 :(得分:1)
由于您在UITableView
内使用此UIViewController
,因此请务必记住设置TableView dataSource
和delegate
UIViewController
编辑:对不起,刚看到@c_rath提到了同样的事情。
答案 2 :(得分:1)
如果根本没有调用func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
,似乎您忘记分配tableView.dataSource = self
或在界面构建器中执行此操作。由于您的控制器中似乎有2个表视图,因此您需要将它们的两个数据源都设置为自己,例如:
flaggedTable.dataSource = self
recentTable.dataSource = self
别忘了调整UITableViewDataSource
如:
class HomePageViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource {
所以完整的代码看起来像:
class HomePageViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource {
...
override func viewDidLoad() {
super.viewDidLoad()
flaggedTable.dataSource = self
recentTable.dataSource = self
flaggedTable.delegate = self
recentTable.delegate = self
addSerial("FCGPR0TUG07P", status: "Shipped", issues: 6, reworks: 2, index: 0, flagged: false)
}