私はビューコントローラから配列を呼び出して、オブジェクトを含む配列からテキストを設定しようとしています。しかし、私がsegueを実行するとき、それは私に "範囲外のインデックス"を与えるだけです。私は何が間違っているのか分かりません。私も自分自身を使用しようとしました。呼び出しのどこでもそれはdosentが問題であるようである。これはなぜインデックス外ですか?
可変のムービーは、配列から1つのムービーだけを取得しようとしていますが、同じ問題がそのまま残ります。私はviewcontrollerに何か問題があったのですか、それとも価値を渡す必要がありますか?
Detailsviewcontrollerは新しいビューとテーブルビューのコントローラです。そのため、ファイル内に別のクラスが作成されています。
ファイル: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!
}
'ViewController()'の2つのインスタンスが互いに異なっていて、ストーリーボードまたはxibの 'ViewController'インスタンスと異なると考えてください。それが問題です。 View Controllerへの実際の参照が必要です。 – vadian
'var mainController = ViewController()'の行は何ですか?未使用で、 'ViewController'クラスは何ですか? 'var movie = ViewController()。self.movieArray [0]'は何をしようとしますか?私はこれが問題の原因となっているラインだと思いますが、どのラインが例外を引き起こしているのかを明示し、あなたの質問に*完全なエラーメッセージを追加してください。 –
[ビューコントローラと他のオブジェクト間でデータをどのように共有しますか?]の複製は可能ですか?(http://stackoverflow.com/questions/29734954/how-do-you-share-data-between-view-controllers-and -other-objects-in-swift) – brimstone