为什么这没有索引?

时间:2017-02-26 21:23:37

标签: ios arrays swift segue

我试图从我的viewcontroller调用一个数组,然后从包含对象的数组中设置文本。但是当我执行segue时它只给我一个“索引超出范围”我看不出我做错了什么。我也尝试过使用自我。电话中的每个地方,但似乎都是问题。

变量影片是我尝试从阵列中只获得1部电影的地方,但同样的问题仍然存在。我的viewcontroller做错了什么,或者我需要传递一个值吗?

Detailsviewcontroller是新视图和tableview的控制器,这就是为什么我在文件中创建了另一个类。

文件:DetailsviewController

import UIKit
class DetailsViewController: UIViewController, UITableViewDataSource,UITabBarDelegate { 

    @IBOutlet weak var tableView: UITableView!



    var mainController = ViewController()

    var movie = ViewController().self.movieArray[0]





    var titles = ["Title", "Release Date","Genres","OverView"]



    override func viewDidLoad() {
        super.viewDidLoad()
        print(movie)
        // Do any additional setup after loading the view.
    }



    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return titles.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! DetailsCustomcell

        cell.detailTitle.text = titles[indexPath.row]
        if indexPath.row == 0{
        cell.detailContent.text = ""
        }
        if indexPath.row == 1{
            cell.detailContent.text = ""
        }
        if indexPath.row == 2{
            cell.detailContent.text = "Movie genre´s is not fixed yet"
        }
        if indexPath.row == 3{
            cell.detailContent.text = ""
        }
            return cell
    }





    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}
class DetailsCustomcell: UITableViewCell{

    @IBOutlet weak var detailTitle: UILabel!

    @IBOutlet weak var detailContent: UILabel!

}

1 个答案:

答案 0 :(得分:0)

不确定这是什么:

var mainController = ViewController()
var movie = ViewController().self.movieArray[0]

无论如何,ViewController()实例化该类的新对象。此时,movieArray很可能从未被初始化并且没有任何对象。