2016-12-31 5 views
-1

을 사용하여 두 번째 테이블보기에서 사용 내 프로젝트에 두 개의 테이블보기가 하나, 색인 경로를 얻을 수 있습니다. 메인 테이블의 서브 테이블 인 두 번째 테이블 뷰에서 사용할 메인 테이블 인 첫 번째 테이블 뷰.어떻게 얻을 수있는 첫 번째 테이블보기의 인덱스 path.row Swift3, Xcode8

내 메인 테이블입니다.

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){} 


    }) 



    } 
     } 

    } 

이것은 내 SubTableView입니다.

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의 값을 사용자의 하위 테이블 뷰의 속성을 생성하고 할당 할 수
+0

당신이 묻는 것이 명확하지 않습니다. 부모보기 컨트롤러에 포함 된 두 테이블보기 컨트롤러가 있고 동시에 화면에 표시되거나 두 번째 테이블보기 컨트롤러에 대한 하나의 링크를 두드리고 있습니까? 하나가 다음으로 연결되면 두 번째보기 컨트롤러를 어떻게 호출할까요? 더 많은 정보를 제공해야합니다. –

+0

저는 주 테이블보기에서 if 문을 사용하여 모든 색인 경로에 대한 데이터를 다운로드합니다. 이제는 기본 테이블보기가 아닌 하위 테이블보기에서 이러한 if 문을 사용하여 데이터를 다운로드 할 수 있습니까? . –

+0

나는 아직도 이해하지 못한다. 두 번째 테이블보기가 다른 화면입니까? 마스터/디테일 설정입니까? –

답변

0

:

SubWomenView.subWomenArray = self.womenArray

+0

그것은 작동하지 않습니다, 나는 두 번째 테이블보기에서 그것을 사용하는 첫 번째 테이블보기의 색인 path.row를 얻으려고 노력하므로 두 번째 테이블의 첫 번째 테이블 대신 두 번째 테이블에서 if 문을 사용하려고합니다. . –

0

아마도 튜플을 사용하는 것이 더 이해하기 쉽습니다. SubWomenView.subWomenArray = (index.row, self.womenArray) subtableview에서

,

var에 subWomenArray : (INT, [여성])

이 그런 다음 [여성]을 참조 subWomenArray.1

+0

그것은 작동하지 않습니다, 나는 두 번째 테이블보기에서 그것을 사용하는 첫 번째 테이블보기의 색인 path.row를 얻으려고합니다. 그래서 두 번째 테이블의 첫 번째 테이블 대신 if 문을 사용하고 싶습니다. –