teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

最後にエラーが出ます

2019/06/10 06:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,6 @@
1
+ ```ここに言語を入力
2
+ コード
1
- ### 前提・実現したいこと
3
+ ```### 前提・実現したいこと
2
4
 
3
5
  プログラミング初心者になります。
4
6
  UIpicker対応のtextfieldを2つ置いて、最初のtextfieldで選択した値によって
@@ -93,5 +95,81 @@
93
95
  ここに問題に対して試したことを記載してください。
94
96
 
95
97
  ### 補足情報(FW/ツールのバージョンなど)
98
+ ```ここに言語を入力
99
+ import UIKit
96
100
 
101
+ class ViewController: UIViewController,UITextFieldDelegate,UIPickerViewDelegate,UIPickerViewDataSource {
102
+
103
+ @IBOutlet weak var text_field_daieria: UITextField!
104
+ @IBOutlet weak var text_field_chueria: UITextField!
105
+
106
+ let chueria_dic:[String:[String]] = [
107
+ "北海道地方":["","北海道"],
108
+ "東北地方":["","青森県","秋田県","岩手県","宮城県","山形県","福島県"]]
109
+
110
+ let daieria_arr =
111
+ ["","北海道地方","東北地方"]
112
+ let chueria_arr =
113
+ ["","北海道","青森県","秋田県","岩手県","宮城県","山形県","福島県"]
114
+
115
+
116
+
117
+ let my_pickerView = UIPickerView()
118
+ var current_arr : [String] = []
119
+ var active_textfield : UITextField!
120
+
121
+ override func viewDidLoad() {
122
+ super.viewDidLoad()
123
+ // Do any additional setup after loading the view.
124
+
125
+ text_field_daieria.delegate = self
126
+ text_field_chueria.delegate = self
127
+
128
+ my_pickerView.delegate = self
129
+ my_pickerView.dataSource = self
130
+
131
+ text_field_daieria.inputView = my_pickerView
132
+ text_field_chueria.inputView = my_pickerView
133
+
134
+ }
135
+ //修正箇所
136
+ func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
137
+
138
+
139
+
140
+ switch textField{
141
+ case text_field_daieria:current_arr = daieria_arr
142
+
143
+ case text_field_chueria:
144
+
145
+ if let daieria = text_field_daieria.text,!daieria.isEmpty{
146
+ current_arr = chueria_dic[daieria]!
147
+ }else{
148
+ current_arr = chueria_arr
149
+ }
150
+ default:print("default")
151
+ }
152
+ my_pickerView.reloadAllComponents()
153
+ return true
154
+ }
155
+
156
+ override func didReceiveMemoryWarning() {
157
+ super.didReceiveMemoryWarning()
158
+ }
159
+ func numberOfComponents(in pickerView: UIPickerView) -> Int {
160
+ return 1
161
+ }
162
+ func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
163
+ return current_arr.count
164
+ }
165
+ func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
166
+ return current_arr[row]
167
+ }
168
+ func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
169
+ **active_textfield.text = current_arr[row]**//ここで、Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional valueとエラーが出ます。
170
+
171
+ }
172
+
173
+ }
174
+ ```
97
175
  ここにより詳細な情報を記載してください。