質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

514閲覧

複数のpickerのデータの取得方法について

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/06/13 05:06

  1. text_field_rosenにはdaieria_arrの路線名が表示されるのですが選択できません
  2. その為、text_field_ekimeiには何も表示されなくなってしまいました
  3. text_field_statusに表示される値がtext_field_causeで表示される値("安全確認")と同じになってしまいました。
  4. func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    active_textfield?.text = current_arr[row]においてWill never be executedというエラーが出てしまいました
    どのように修正すればよろしいでしょうか?

よろしくお願いいたします。

コード import UIKit class ViewController: UIViewController,UITextFieldDelegate,UIPickerViewDelegate,UIPickerViewDataSource { @IBOutlet weak var text_field_rosen: UITextField! @IBOutlet weak var text_field_ekimei: UITextField! @IBOutlet weak var text_field_cause: UITextField! @IBOutlet weak var text_field_status: UITextField! let chueria_dic:[String:[String]] = [ "銀座線":["","渋谷","表参道","外苑前","青山一丁目","赤坂見附","溜池山王","虎ノ門","新橋","銀座","京橋","日本橋","三越前","神田","末広町","上野広小路","上野","稲荷町","田原町","浅草"], "丸ノ内線":["","荻窪","南阿佐ヶ谷","新高円寺","東高円寺","新中野","中野坂上","西新宿","新宿","新宿三丁目","新宿御苑前","四谷三丁目","四ツ谷","赤坂見附","国会議事堂前","霞ヶ関","銀座","東京","大手町","淡路町","御茶ノ水","本郷三丁目","後楽園","茗荷谷","新大塚","池袋","方南町","中野富士見町","中野新橋"], "日比谷線":["","中目黒","恵比寿","広尾","六本木","神谷町","霞ヶ関","日比谷","銀座","東銀座","築地","八丁堀","茅場町","人形町","小伝馬町","秋葉原","仲御徒町","上野","入谷","三ノ輪","南千住","北千住"], "東西線":["中野","落合","高田馬場","早稲田","神楽坂","飯田橋","九段下","竹橋","大手町","日本橋","茅場町","門前仲町","木場","東陽町","南砂町","西葛西","葛西","浦安","南行徳","行徳","妙典","原木中山","西船橋"], "千代田線":["代々木上原","代々木公園","明治神宮前","表参道","乃木坂","赤坂","国会議事堂前","霞ヶ関","日比谷","二重橋前","大手町","新御茶ノ水","湯島","根津","千駄木","西日暮里","町屋","北千住","綾瀬","北綾瀬"], "有楽町線":["和光市","地下鉄成増","地下鉄赤塚","平和台","氷川台","小竹向原","千川","要町","池袋","東池袋","護国寺","江戸川橋","飯田橋","市ヶ谷","麹町","永田町","桜田門","有楽町","銀座一丁目","新富町","月島","豊洲","辰巳","新木場"], "半蔵門線":["渋谷","表参道","青山一丁目","永田町","半蔵門","九段下","神保町","大手町","三越前","水天宮前","清澄白河","住吉","錦糸町","押上"], "南北線":["目黒","白金台","白金高輪","麻布十番","六本木一丁目","溜池山王","永田町","四ツ谷","市ヶ谷","飯田橋","後楽園","東大前","本駒込","駒込","西ヶ原","王子","王子神谷","志茂","赤羽岩淵"], "副都心線":["和光市","地下鉄成増","地下鉄赤塚","平和台","氷川台","小竹向原","千川","要町","池袋","雑司が谷","西早稲田","東新宿","新宿三丁目","北参道","明治神宮前","渋谷"]] let daieria_arr = ["","銀座線","丸ノ内線","日比谷線","東西線","千代田線","有楽町線","半蔵門線","南北線","副都心線"] let chueria_arr = [""] let my_pickerView = UIPickerView() var current_arr : [String] = [] var active_textfield : UITextField! var pickerView_1:UIPickerView = UIPickerView() let causelist = ["安全確認","",""] var pickerView_2:UIPickerView = UIPickerView() let statuslist = ["運転見合わせ","ダイヤ乱れ"] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. text_field_rosen.delegate = self text_field_ekimei.delegate = self text_field_cause.delegate = self my_pickerView.delegate = self my_pickerView.dataSource = self pickerView_1.tag = 3 pickerView_1.delegate = self pickerView_1.dataSource = self pickerView_2.tag = 4 pickerView_2.delegate = self pickerView_2.dataSource = self text_field_rosen.inputView = my_pickerView text_field_ekimei.inputView = my_pickerView text_field_cause.inputView = pickerView_1 text_field_status.inputView = pickerView_2 //ここから付け足し"donebutton" let toolBar = UIToolbar() toolBar.barStyle = UIBarStyle.default toolBar.isTranslucent = true toolBar.tintColor = UIColor.black let doneButton = UIBarButtonItem(title: "決定", style: UIBarButtonItem.Style.done, target: self, action: #selector(ViewController.donePressed)) let cancelButton = UIBarButtonItem(title: "戻る", style: UIBarButtonItem.Style.plain, target: self, action: #selector(ViewController.donePressed)) let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace,target: nil, action: nil) toolBar.setItems([cancelButton,spaceButton,doneButton],animated:false) toolBar.isUserInteractionEnabled = true toolBar.sizeToFit() text_field_ekimei.inputAccessoryView = toolBar text_field_rosen.inputAccessoryView = toolBar text_field_cause.inputAccessoryView = toolBar } @objc func donePressed(){ view.endEditing(true) func cancelPressed(){ text_field_ekimei.text="" view.endEditing(true) } } func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { active_textfield = textField switch textField{ case text_field_rosen:current_arr = daieria_arr case text_field_ekimei: if let daieria = text_field_rosen.text,!daieria.isEmpty{ current_arr = chueria_dic[daieria]! }else{ current_arr = chueria_arr } default:print("default") } my_pickerView.reloadAllComponents() return true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { switch pickerView { case my_pickerView: return current_arr.count case pickerView_1: return causelist.count case pickerView_2:return statuslist.count default: fatalError() } } //UIPickerViewの表示する内容を設定 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { if pickerView==my_pickerView{ return current_arr[row] }else if pickerView_1 == pickerView_1{ return causelist[row] }else if pickerView_2 == pickerView_2{ return statuslist[row] }else{ return nil } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { active_textfield?.text = current_arr[row] } func pickerView(_ pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat { return 1 } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2019/06/13 07:16

・エラーの意味をどのように認識していますか? ・インデントがおかしいので直してください。 エラーの意味が分かっていて、インデントを修正すれば、間違いに気付くかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問