###前提・実現したいこと
Storyboardで先日Viewを並べて作ったものを Tableで作りなおしたのですがコードは特に変えていないのに実行してTextFieldをクリックしキーボードまたはPickerのToolbarにある完了(押すとキーボードなどを閉じるボタン)を押すとエラーが起きてしまいます
エラーの発生場所はAppDelegateの以下の場所でした
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
###発生している問題・エラーメッセージ
Thread 1:signal SIGABRT
swift
1import UIKit 2 3class kinmuTable: UITableViewController, UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate, UIToolbarDelegate { 4 5 //配列の作成 6 let furikyuuList = ["","○",] 7 let chouseiList = ["","電車遅延","シフト勤務","変則シフト","早出遅出","本社出勤","本社退社","本社終日","客都出社"] 8 9 @IBOutlet weak var kaishi: UITextField! 10 @IBOutlet weak var syuuryou: UITextField! 11 @IBOutlet weak var hosei: UITextField! 12 @IBOutlet weak var sagyou: UILabel! 13 @IBOutlet weak var zangyou: UILabel! 14 @IBOutlet weak var shinya: UILabel! 15 @IBOutlet weak var kintai: UILabel! 16 @IBOutlet weak var kyuuka: UITextField! 17 @IBOutlet weak var chousei: UITextField! 18 @IBOutlet weak var furikyuu: UITextField! 19 20 var toolBar:UIToolbar! 21 22 //pickerViewの宣言 23 let furikyuuSentaku = UIPickerView() 24 let chouseiSentaku = UIPickerView() 25 26 //今日の日付を代入 27 let nowDate = NSDate() 28 let dateFormat = NSDateFormatter() 29 30 //DatePickerの宣言 31 let kaishiSentaku = UIDatePicker() 32 let syuuryouSentaku = UIDatePicker() 33 let hoseiSentaku = UIDatePicker() 34 35 override func viewDidLoad() { 36 super.viewDidLoad() 37 38 // Do any additional setup after loading the view. 39 40 furikyuuSentaku.delegate = self 41 furikyuuSentaku.dataSource = self 42 chouseiSentaku.delegate = self 43 chouseiSentaku.dataSource = self 44 self.kaishi.delegate = self 45 self.syuuryou.delegate = self 46 self.hosei.delegate = self 47 48 //tag設定 49 furikyuuSentaku.tag = 0 50 chouseiSentaku.tag = 1 51 52 kaishiSentaku.tag = 0 53 syuuryouSentaku.tag = 1 54 hoseiSentaku.tag = 2 55 56 //Pickerviewを入れる 57 furikyuu.inputView = furikyuuSentaku 58 chousei.inputView = chouseiSentaku 59 60 //日付フィールドの設定 61 dateFormat.dateFormat = "HH:mm" 62 kaishi.text = dateFormat.stringFromDate(nowDate) 63 syuuryou.text = dateFormat.stringFromDate(nowDate) 64 hosei.text = dateFormat.stringFromDate(nowDate) 65 66 //datepickerを日本語にする 67 kaishiSentaku.locale = NSLocale(localeIdentifier: "ja_JP") 68 syuuryouSentaku.locale = NSLocale(localeIdentifier: "ja_JP") 69 hoseiSentaku.locale = NSLocale(localeIdentifier: "ja_JP") 70 71 // DatePickerの設定(日付用) 72 kaishiSentaku.datePickerMode = UIDatePickerMode.Time 73 kaishi.inputView = kaishiSentaku 74 syuuryouSentaku.datePickerMode = UIDatePickerMode.Time 75 syuuryou.inputView = syuuryouSentaku 76 hoseiSentaku.datePickerMode = UIDatePickerMode.Time 77 hosei.inputView = hoseiSentaku 78 79 80 // UIToolBarの設定 81 toolBar = UIToolbar(frame: CGRectMake(0, self.view.frame.size.height/6, self.view.frame.size.width, 40.0)) 82 toolBar.layer.position = CGPoint(x: self.view.frame.size.width/2, y: self.view.frame.size.height-20.0) 83 toolBar.barStyle = .BlackTranslucent 84 toolBar.tintColor = UIColor.whiteColor() 85 toolBar.backgroundColor = UIColor.blackColor() 86 87 //完了ボタンのセット 88 //右寄せのためのスペース設定 89 let spaceBarBtn = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,target: self,action: Selector("")) 90 91 //設置 92 let toolBarBtn = UIBarButtonItem(title: "完了", style: .Done, target: self, action: Selector("toolBarBtnPush:")) 93 94 //ツールバーにボタンを表示 95 toolBar.items = [spaceBarBtn,toolBarBtn] 96 97 kaishi.inputAccessoryView = toolBar 98 syuuryou.inputAccessoryView = toolBar 99 hosei.inputAccessoryView = toolBar 100 kyuuka.inputAccessoryView = toolBar 101 chousei.inputAccessoryView = toolBar 102 furikyuu.inputAccessoryView = toolBar 103 104 } 105 106 override func didReceiveMemoryWarning() { 107 super.didReceiveMemoryWarning() 108 // Dispose of any resources that can be recreated. 109 } 110 111 // 項目の数 112 func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 113 114 return 1 115 } 116 117 // 要素数 118 func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 119 120 if pickerView.tag == 0{ 121 return self.furikyuuList.count 122 } 123 if pickerView.tag == 1{ 124 return self.chouseiList.count 125 } 126 return 0 127 } 128 129 //要素を表す文字列 130 func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 131 132 if pickerView.tag == 0{ 133 return self.furikyuuList[row] 134 } 135 if pickerView.tag == 1{ 136 return self.chouseiList[row] 137 } 138 return "" 139 } 140 141 //テキストフィールドに表示 142 func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 143 144 if pickerView.tag == 0{ 145 furikyuu.text = self.furikyuuList[row] 146 } 147 if pickerView.tag == 1{ 148 chousei.text = self.chouseiList[row] 149 } 150 } 151 152 func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { 153 return 50 154 } 155 156 // 「完了」を押すと閉じる 157 func tappedToolBarBtn(sender: UIBarButtonItem) { 158 159 kaishi.text = dateFormat.stringFromDate(kaishiSentaku.date) 160 syuuryou.text = dateFormat.stringFromDate(syuuryouSentaku.date) 161 hosei.text = dateFormat.stringFromDate(hoseiSentaku.date) 162 163 kaishi.resignFirstResponder() 164 syuuryou.resignFirstResponder() 165 hosei.resignFirstResponder() 166 kyuuka.resignFirstResponder() 167 chousei.resignFirstResponder() 168 furikyuu.resignFirstResponder() 169 170 } 171
###試したこと
コードの転載ミスがないかのチェックは行いました
回答1件
あなたの回答
tips
プレビュー