如何将index.row添加到我的函数使用Swift3和Xcode8
问题描述:
任何人都可以帮助我将index.row添加到函数loadData(),我有一个表视图,我下载我的数据,我试图在使用loadData函数的另一个表视图中查看这些数据,我知道我可以在didSelectedRow函数内部创建它,但现在我需要在函数内部使用它。我试图用索引添加行来查看不同的数据。如何将index.row添加到我的函数使用Swift3和Xcode8
这是我的表格视图。
import UIKit
class MainTableViewController: UITableViewController {
var index = 0
var womenArray = [women]()
var data : [String] = []
let backendless = Backendless()
override func viewDidLoad() {
super.viewDidLoad()
data = ["1","2","3","4","5"]
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = data[indexPath.row]
return cell
}
func loadData(){
if index == 0 { // Here where I'am trying to put if index.row == 0
let whereClause = "Desc = 'test'"
let dataQuery = BackendlessDataQuery()
dataQuery.queryOptions.pageSize=50
dataQuery.whereClause = whereClause
backendless.data.of(women.ofClass()).find(dataQuery,response: {(result: BackendlessCollection?) -> Void in
let data = result?.getCurrentPage()
for obj in data! as! [women] {
self.womenArray.append(obj)
}
let SubWomenView: WomenSubTableViewController = self.storyboard!.instantiateViewController(withIdentifier: "subwomen") as! WomenSubTableViewController
SubWomenView.subWomenArray = self.womenArray
self.navigationController?.pushViewController(SubWomenView, animated: true)
},
error: { (fault: Fault?) -> Void in
print(fault)
let alert = UIAlertController(title: "info", message:"يرجى الاتصال بالانترنيت", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default) { _ in
})
self.present(alert, animated: true){}
})
}else if index == 1 {
let whereClause = "Desc = 'test2'"
let dataQuery = BackendlessDataQuery()
dataQuery.queryOptions.pageSize=50
dataQuery.whereClause = whereClause
backendless.data.of(women.ofClass()).find(dataQuery,response: {(result: BackendlessCollection?) -> Void in
let data = result?.getCurrentPage()
for obj in data! as! [women] {
self.womenArray.append(obj)
}
let SubWomenView: WomenSubTableViewController = self.storyboard!.instantiateViewController(withIdentifier: "subwomen") as! WomenSubTableViewController
SubWomenView.subWomenArray = self.womenArray
self.navigationController?.pushViewController(SubWomenView, animated: true)
},
error: { (fault: Fault?) -> Void in
let alert = UIAlertController(title: "info", message:"يرجى الاتصال بالانترنيت", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default) { _ in
})
self.present(alert, animated: true){}
})
}
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.loadData()
}
}
答
看起来你可以通过indexPath
到您loadData()
功能。那么你的函数看起来像
func loadData(at indexPath: IndexPath) {
if indexPath.row == 0 {
/// etc etc
}
}
和didSelectRowAt
就叫self.loadData(at: indexPath)
非常感谢你。 –