2017-03-21 5 views
0

私はiOS/Swiftを初めて使っています。DatePickerでUITextFieldがクラッシュする

私はTextField、timeTextFieldを持っており、クリック時にTimePickerを表示したいと考えています。これはすべて機能していますが、別の要素が選択されたときにアプリがクラッシュするのはなぜですか? UPDATE 1:更新されたコード コード:

func setupTimePicker(){ 
    datePickerView.datePickerMode = UIDatePickerMode.time 
    datePickerView.removeFromSuperview() 
    timeTextField.inputView = datePickerView 
    datePickerView.addTarget(self, action: #selector(self.datePickerValueChanged(sender:)), for: .valueChanged) 
} 

func datePickerValueChanged(sender:UIDatePicker) { 
    var date = Date() 
    let calendar = Calendar.current 

    date = sender.date; 

    let hour = calendar.component(.hour, from: date) 
    let minutes = calendar.component(.minute, from: date) 

    timeTextField.text = String(format: "%02d", hour) + ":" + String(format: "%02d", minutes) 
} 

エラー:

[TestApp.ViewController pickTime:]: unrecognized selector sent to instance 0x7f9305e08e20

+0

'timeTextField'インスタンスが正しく接続されていることを確認してください(IBOutlet)。 –

+0

あなたのコードのどこかに 'func pickTime(...)'がありますか?それとも、以前に持っていたのですか? YESの場合は、ストーリーボード、UIViewControllerクラスが正しくないか、そこにIBAction用の古いIBOutletがあるかどうかを確認してください。 – Larme

+0

私は前に1つを持っていたと私はスコアボードから削除することを忘れて、私はiOSの新人だからルーキーミスです –

答えて

0

あなたはinputViewUITextFieldにアプリがクラッシュとしてビューを追加iOS8/iOS9、以来。あなたのクラッシュを解決するには、datePickerinputViewからUITextFieldに追加する前に[<pickerView> removeFromSuperView]と呼んでください。これはクラッシュの問題を解決します。

+0

私は私のコードを変更する場合: datePickerView.datePickerMode = UIDatePickerMode.time datePickerView.removeFromSuperview ) timeTextField.inputView = datePickerView それでもクラッシュする –

+0

あなたの質問に更新されたコードを追加できますか? –

+0

あなたの変更内容を編集しました。 –

関連する問題