我遇到了通过远程UITableView
文件填充JSON
的问题。我有两个功能:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return newsdata.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! NewsTableViewCell
let nachricht = newsdata[indexPath.row]
cell.NewsHeadline.text = nachricht.newstitel
return cell
}
设置并运行,并将ID“ShowNewsDetail”连接到另一个具有UIWebView
的视图控制器。但是,在代码中连接两个控制器不起作用:
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject?) {
if segue.identifier == "ShowNewsDetails" {
let detailViewController = segue.destinationViewController
as! NewsDetailViewController
let myIndexPath = self.tableView.indexPathForSelectedRow()
let row = myIndexPath?.row
detailViewController.webSite = newsdata[row!]
}
}
Xcode 7.1报告“对成员'tableView'的模糊引用”并指向它之前的两个函数作为“候选者”。我不知道如何挑选候选人或解决这个恼人的错误。
答案 0 :(得分:0)
我检查了你的代码,一切正常。但在我的情况下,Swift应用了一些更改。我的xCode也是7.1版本。我只是在一个细节控制器中传递一个字符串。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "ShowNewsDetails" {
let detailViewController = segue.destinationViewController
as! NewsDetailViewController
let myIndexPath = self.tableView.indexPathForSelectedRow!
let index = myIndexPath.row
detailViewController.tempStr = String(index)
}
}
欢呼声。
答案 1 :(得分:0)
我的猜测是你有一个名为tableView的插座。编译器将outlet的符号视为与两个方法名称的符号相同。
所以不要这样:
@IBOutlet weak var tableView: UITableView!
将您的插座重命名为其他内容:
@IBOutlet weak var newsTableView: UITableView!
然后在prepareForSegue
代码中使用此出口变量:
let myIndexPath = self.newsTableView.indexPathForSelectedRow!