New*_*ngs 5 uitableview ios swift
我正在使用xcode 7 beta,我已经从教程中找到了这段代码,但是我使用的是代码UIViewController而不是UITableViewController出于很多原因.(我不知道这是否导致了这个具体问题).我已经得到了UIViewController一个典型的设置,UITableViewController但我遇到了错误
暧昧使用
'tableView(_:numberOfRowsInSection:)
这是我的代码
class ShoppingViewController: UIViewController {
var toDoItems:NSMutableArray = NSMutableArray()
override func viewDidAppear(animated: Bool) {
var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var itemListFromUserDefaults:NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray
if ((itemListFromUserDefaults) != nil){
toDoItems = itemListFromUserDefaults!
}
**self**.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
以及
if (segue != nil && segue!.identifier == "showDetail") {
var selectedIndexPath:NSIndexPath = **self**.tableView.indexPathForSelectedRow()
var detailViewController:DetailsViewController = segue!.destinationViewController as! DetailsViewController
detailViewController.toDoData = toDoItems.objectAtIndex(selectedIndexPath.row) as! NSDictionary
}
Run Code Online (Sandbox Code Playgroud)
候选人(根据XCode):
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return toDoItems.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
let toDoItem:NSDictionary = toDoItems.objectAtIndex(indexPath.row) as! NSDictionary
cell.textLabel!.text = toDoItem.objectForKey("itemTitel") as? String
return cell
}
Run Code Online (Sandbox Code Playgroud)
升级到 Xcode 7.1 beta 后我也遇到了类似的问题。我想知道这是否是测试版中的一个错误?有人找到解决办法了吗?
更新 - 所以我在我的项目中解决了这个问题。我必须为我的 tableView 设置 IBOutlet,然后对该对象执行 reloadData。例如,将 IBOutlet 设置为 myItemsTableView,然后调用 self.myItemsTableView.reloadData() ,效果很好。在这个项目中,它需要 myItemsTableView 并重新加载,而不是通用命令 tableView.reloadData()。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |