以下是我的json回复......
{"Doctor":[{"doctorname":"ANBU SURESH RAO, D.ORTHO., MSORTHO.,","presid":"1008"}]}
以下是我的viewcontroller代码.......
let parameters: Parameters=["hnum":hnum!]
Alamofire.request(URL_USER_LOGIN, method: .post, parameters: parameters).responseJSON
{
response in
let result = response.result
if let dict = result.value as? Dictionary<String,AnyObject>{
if let innerDict = dict["Doctor"]{
self.namesarray = innerDict as! [AnyObject]
self.jsontable.reloadData()
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return namesarray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? CustomTableViewCell
let name = namesarray[indexPath.row]["doctorname"]
cell?.lbldocname.text = name as? String
flag = !flag
flagcheck()
return cell!
}
这个视图控制器只加载我的医生名字,所以当我点击医生名字时,我希望只将presid传递给下一个视图控制器....我尝试使用prepareForSegue它没有工作....任何想法????
答案 0 :(得分:0)
声明一个全局变量selectedPresId。实现didSelectRowAtIndexPath方法,并在该方法中设置该全局变量
中的pres idfunc tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedPresId = namesarray[indexPath.row]["presid"]
self.performSegue(withIdentifier: "detailSegue", sender: self)
}
在prepareForSegue中执行此操作
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "detailSegue" {
let vc = segue.destination as! ViewController
vc.selectedPresId = selectedPresId
}
在第二个视图控制器中创建一个名为selectedPresId的属性,以便您可以在上面的行中设置它vc.selectedPresId
答案 1 :(得分:0)
tableView:didSelectRowAtIndexPath:
告诉委托者现在选择了指定的行。使用indexPath在tableView中找到新选定的行。
查看我之前的SO ans了解详情。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let pressId = namesarray[indexPath.row]["presid"]
if let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SecondViewController ") as? SecondViewController {
viewController.pressId= pressId
if let navigator = navigationController {
navigator.pushViewController(viewController, animated: true)
}
}
}
在SecondViewController中声明一个全局变量pressId,以便您可以从当前的控制器类访问它。