###前提・実現したいこと
Xcode7.3.1でPickerViewを遷移先の画面で使用する際にエラーが表示されます。
配置しているPickerViewはそれぞれのviewのdataSourceとdelegateと接続しています。
はじめに表示される画面(左のView)ではPickerが正しく表示されるのですが、右のViewへ遷移しようとするとエラーが出て止まってしまいます。
ソースコードは以下に示します。
###発生している問題・エラーメッセージ
Thread1:signal SIGABRT
###該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource { 4 5 @IBAction func back(segue:UIStoryboardSegue){//戻るボタン用 6 print("back") 7 } 8 9 10 let dataList1 = [["牛","豚","鳥"]] 11 let dataList2 = [["マグロ","ツナ","鮪"]] 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 // Do any additional setup after loading the view, typically from a nib. 16 } 17 18 override func didReceiveMemoryWarning() { 19 super.didReceiveMemoryWarning() 20 // Dispose of any resources that can be recreated. 21 } 22 23 //コンポーネントの個数を返すメソッド 24 func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 25 if pickerView.tag == 0{ 26 return dataList1.count 27 } 28 else if pickerView.tag == 1{ 29 return dataList2.count 30 } 31 return dataList1.count 32 } 33 //コンポーネントに含まれるデータの個数を返すメソッド 34 func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 35 if pickerView.tag == 0{ 36 return dataList1[component].count 37 } 38 else if pickerView.tag == 1{ 39 return dataList2[component].count 40 } 41 return dataList1[component].count 42 } 43 //データを返すメソッド 44 func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 45 46 if pickerView.tag == 0{ 47 return dataList1[component][row] 48 } 49 else if pickerView.tag == 1{ 50 return dataList2[component][row] 51 } 52 return dataList1[component][row] 53 } 54} 55
###試したこと
dataSourceとdelegateの接続を確認したり、一度プロジェクトを削除して初めから作り直す、ネットで解決策を探してみました。
dataSourceとdelegateの接続をしなければエラーは出ませんが、遷移先のPickreが表示されませんでした。
###補足
左のviewのボタンを押すことで右のviewに遷移し、右のviewの戻るを押すと左のviewに戻ります。
pickerViewのTagは0に設定してあります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/15 01:59