从另一个视图控制器获取数组的值到tableViews中的View Controller标签swift ios

时间:2017-12-13 07:44:14

标签: ios arrays swift uitableview

我正在尝试从tempArray中的数组descArrayAddViewController获取ViewViewControllertableviewtemLabel的值,我想要两个数组值应分别打印在descLabelimport UIKit class ViewViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var getAddController : AddViewController = AddViewController() @IBOutlet weak var menu: UIBarButtonItem!// @IBOutlet weak var viewTableView: UITableView! func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let numberRows = getAddController.tempArray let numRow = String(describing: numberRows) print (numRow) return 10 //numRow.count //getAddController.tempArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = viewTableView.dequeueReusableCell(withIdentifier: "ViewTableViewCell") as! ViewTableViewCell let temarrayNow = getAddController.tempArray let descArrayNow = getAddController.descArray let crrentTemarray = String(describing: temarrayNow) let decArNow = String(describing: descArrayNow) cell.titleLabel.text = crrentTemarray[indexPath.row] cell.descLabel.text = descArrayNow[indexPath.row] return cell } override func viewDidLoad() { super.viewDidLoad() menu.target = revealViewController() menu.action = #selector(SWRevealViewController.revealToggle(_:)) self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) viewTableView.delegate = self viewTableView.dataSource = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } ,但我收到错误

  

指数超出范围   任何问题我都不知道我该做什么我已经研究过但没有任何帮助。

以下是ViewViewController的代码

    jQuery(document).ready(function($) {
    "use strict";
    //  TESTIMONIALS CAROUSEL HOOK
    $('#customers-testimonials').owlCarousel({
        loop: true,
        center: true,
        items: 3,
        margin: 0,
        autoplay: true,
        dots:false,
        autoplayTimeout: 8500,
        smartSpeed: 450,
        responsive: {
          0: {
            items: 1
          },
          768: {
            items: 2
          },
          1170: {
            items: 3,
            nav:true
          }
        }
    });
});

3 个答案:

答案 0 :(得分:0)

numberOfRowsInSection中,返回tempArray计数而不是固定值10。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    let numberRows = getAddController.tempArray
    let numRow = String(describing: numberRows)
    print (numRow)
    return numberRows.count
    //numRow.count
    //getAddController.tempArray.count
}

这应该有用。

答案 1 :(得分:0)

在此方法中,您需要返回数组计数而不是静态值

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    let numberRows = getAddController.tempArray
    let numRow = String(describing: numberRows)
    print (numRow)
    return numberRows.count
}

请注意,您在 cellForRowAt 中使用了两个数组 getAddController.tempArray getAddController.descArray ,并且您只返回一个计数 numberOfRowsInSection 所以你必须在两个数组中都有相同的元素,因为如果其中一个元素的元素较少,那么你将再次收到错误

答案 2 :(得分:0)

我想知道天气tempArray和descArray,两者都有相同数量的元素(arr.count)

并在cellForRowAt中,

let crrentTemarray = String(describing: temarrayNow)
let decArNow = String(describing: descArrayNow)

cell.titleLabel.text = crrentTemarray[indexPath.row] //here you have used crrentTemarray

cell.descLabel.text = descArrayNow[indexPath.row]

这里你使用了descArrayNow而不是decArNow (如果我没错)