Ios 如何从数组中只传递一个键值对?
以下是我的json响应Ios 如何从数组中只传递一个键值对?,ios,swift,uitableview,Ios,Swift,Uitableview,以下是我的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
{"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!
}
let参数:参数=[“hnum”:hnum!]
请求(URL\u USER\u LOGIN,方法:.post,参数:parameters).responseJSON
{
回应
让result=response.result
如果让dict=result.value作为字典{
如果让innerDict=dict[“医生”]{
self.namesarray=innerDict as![AnyObject]
self.jsontable.reloadData()
}
}
func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
返回namesarray.count
}
func tableView(tableView:UITableView,cellForRowAt indexath:indexPath)->UITableViewCell{
让cell=tableView.dequeueReusableCell(标识符为“cell”,用于:indexPath)作为?CustomTableViewCell
让name=namesarray[indexath.row][“doctorname”]
单元格?.lbldocname.text=名称为?字符串
flag=!flag
flagcheck()
返回单元!
}
此视图控制器仅加载我的医生姓名,因此当我单击医生姓名时,我只希望presid传递给下一个视图控制器…我尝试了prepareForSegue,但它不起作用…有什么想法吗???声明一个全局变量selectedPresId。实现DidSelectRowatinexPath方法,并在该方法中设置该glo中的pres idbal变量
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedPresId = namesarray[indexPath.row]["presid"]
self.performSegue(withIdentifier: "detailSegue", sender: self)
}
在准备阶段,请这样做
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "detailSegue" {
let vc = segue.destination as! ViewController
vc.selectedPresId = selectedPresId
}
在第二个视图控制器中,创建一个名为-selectedPresId的属性,以便您可以在vc.selectedPresId行上方设置它
tableView:didSelectRowAtIndexPath:
通知代理指定的行已被选中。使用indexPath在tableView中查找新选定的行
查看我以前的详细信息
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,以便您可以从当前控制器类访问它。显示didselect row委托方法代码您需要在执行segu时获取该键值,或者您可以将数组传递给第二个控制器并在那里读取值。@DSDharma…我没有它…因为我不知道如何使用它。。。。你能把它放在这里吗?@nithinsampath我已经在步骤中添加了所需的代码,供你在我的答案中使用。