Ios 如何使用Swift3、Xcode8获取第一个表视图的index path.row以在第二个表视图中使用它

Ios 如何使用Swift3、Xcode8获取第一个表视图的index path.row以在第二个表视图中使用它,ios,uitableview,swift3,xcode8,indexpath,Ios,Uitableview,Swift3,Xcode8,Indexpath,我的项目中有两个表视图,任何一个都可以帮助我获取第一个表视图的index path.row,它是主表,要在第二个表视图中使用,它是主表的子表 这是我的主表视图 import UIKit class MainTableViewController: UITableViewController { var womenArray = [women]() var data : [String] = [] let backendless = Backendless() overr

我的项目中有两个表视图,任何一个都可以帮助我获取第一个表视图的index path.row,它是主表,要在第二个表视图中使用,它是主表的子表

这是我的主表视图

    import UIKit

    class MainTableViewController: UITableViewController {


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
}


override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    self.womenArray.removeAll()

    if (indexPath.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 indexPath.row == 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){}


    })



     }
      }

   }
 import UIKit

 class SubTableViewController: UITableViewController {

var subWomenArray = [women]()


  let backendless = Backendless()

override func viewDidLoad() {
    super.viewDidLoad()



        }

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.

}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return subWomenArray.count
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


    if let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? WomenSubCell{

        let ImgURL = URL(string : self.subWomenArray[(indexPath as NSIndexPath).row].ImgURL!)

        cell.WomenImgView.sd_setImage(with: ImgURL)

        return cell

    }else{

        let cell = WomenSubCell()

        let ImgURL = URL(string : self.subWomenArray [(indexPath as NSIndexPath).row].ImgURL)

        cell.WomenImgView.sd_setImage(with: ImgURL)



        return cell
    }


    }




     }
这是我的微妙观点

    import UIKit

    class MainTableViewController: UITableViewController {


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
}


override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    self.womenArray.removeAll()

    if (indexPath.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 indexPath.row == 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){}


    })



     }
      }

   }
 import UIKit

 class SubTableViewController: UITableViewController {

var subWomenArray = [women]()


  let backendless = Backendless()

override func viewDidLoad() {
    super.viewDidLoad()



        }

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.

}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return subWomenArray.count
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


    if let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? WomenSubCell{

        let ImgURL = URL(string : self.subWomenArray[(indexPath as NSIndexPath).row].ImgURL!)

        cell.WomenImgView.sd_setImage(with: ImgURL)

        return cell

    }else{

        let cell = WomenSubCell()

        let ImgURL = URL(string : self.subWomenArray [(indexPath as NSIndexPath).row].ImgURL)

        cell.WomenImgView.sd_setImage(with: ImgURL)



        return cell
    }


    }




     }

您可以在子表视图上创建属性,并在下一行分配数组时为其分配indexPath.row的值:


SubWomenView.subWomenArray=self.womenArray

也许使用tuple更容易理解。 SubWomenView.subWomenArray=(index.row,self.womenArray)

在subtableview中

var subWomenArray:(Int,[女性])


然后是subWomenArray.1参考你的[女性]

不清楚你在问什么。您是否将两个表视图控制器嵌入到父视图控制器中并同时显示在屏幕上,或者点击一个链接到第二个表视图控制器?如果一个视图指向下一个,那么如何调用第二个视图控制器?您需要提供更多信息。我正在使用主表视图中的if语句下载每个index path.row的数据,现在我想使用子表视图中的if语句而不是主表视图中的if语句来下载数据。您能提供帮助吗。我还是不明白。第二个表视图是否是另一个屏幕?这是一个主/详细设置吗?是的,它是不同的,它不是主详细。第一个表查看一个简单的[1,2,3,4]数组,Iam从数据库中下载数据,但我在第二个表中查看,所以我想让第一个表的indexath.row在第二个表中使用它,而不是在第一个表中使用它。它不起作用,我正在尝试获取第一个表视图的index path.row以在第二个表视图中使用它,因此我想使用if语句而不是第二个表中的第一个表。它不起作用,我正在尝试获取第一个表视图的index path.row以在第二个表视图中使用它,所以我想在第二个表中使用if语句,而不是在第二个表中使用第一个表。