2017-03-07 101 views
0

我使用SWRevealViewController创建了滑出菜单(UITableView),菜单中包含阿拉伯语字符串,但如果按某些字符串,菜单应重新加载新数据;UITableView不适用于阿拉伯语语言单元格

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MenuTableViewCell 
    if cell.label.text == "الرئيسية" { 
     menuTitles = menuTitlesName 
     self.tableView.reloadData() 
    } 
} 

它不会做任何事情,我不能跟indexPath工作,因为会的tableView重新装入一个新的数据,所以有什么建议?!

+1

,在您正在检查这个条件?请添加更多代码,以便我们可以进一步帮助您。 – Pankaj

+0

@王子退房,编辑! –

+0

'dequeueReusableCell'不属于'didSelectRowAt'委托方法,您应该使用['cellForRow(at:)'](https://developer.apple.com/reference/uikit/uitableview/1614983-cellforrow))来获取'现有'细胞。 – user28434

回答

2

你可以从选择的cellForRowAtIndexPath细胞实例,然后检查你的标签文本,并刷新数据

let currentCell = tableView.cellForRow(at: indexPath) as! MenuTableViewCell 
if cell.label.text == "الرئيسية" { 
    menuTitles = menuTitlesName 
    self.tableView.reloadData() 
} 
+0

问题有'swift3 '标签,但你的代码是'swift2'。 – user28434

+1

@ user28434更新了我的代码。 – Pankaj