Swift UIDatePicker для ввода текстового поля – как заставить UIDatePicker исчезнуть?

Это моя первая попытка Swift или приложения для iPhone, поэтому нет нужды говорить, что я не уверен, как сделать много вещей на этом этапе.

Прямо сейчас у меня есть контроллер вида с текстовым полем и кнопкой. Мне удалось найти пример кода, чтобы почти выполнить то, что мне нужно. Я хотел бы сделать следующее:

  1. Когда я нажимаю текстовое поле, на экране появляется экран UIDatePicker.
  2. Установите переключатель UIDate для отображения только времени, а не даты.
  3. Поместите выбранное время UIDatePicker в текстовое поле.
  4. Удалите UIDatePicker, когда я нажимаю кнопку.

Работает от 1 до 3. Но я не могу понять, как заставить UIDatePicker уйти и все же вернуться на экран, если я снова щелкнул текстовое поле.

import UIKit class ViewController: UIViewController { @IBOutlet weak var dateField: UITextField! @IBAction func dateField(sender: UITextField) { var datePickerView : UIDatePicker = UIDatePicker() datePickerView.datePickerMode = UIDatePickerMode.Time sender.inputView = datePickerView datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged) } @IBAction func DoneButton(sender: UIButton) { //How to make datepicker disappear??? } func handleDatePicker(sender: UIDatePicker) { var timeFormatter = NSDateFormatter() timeFormatter.dateStyle = .NoStyle timeFormatter.timeStyle = .ShortStyle dateField.text = timeFormatter.stringFromDate(sender.date) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } } 

2 Solutions collect form web for “Swift UIDatePicker для ввода текстового поля – как заставить UIDatePicker исчезнуть?”

Вы вызываете resignFirstResponder в текстовое поле:

 @IBAction func DoneButton(sender: UIButton) { dateField.resignFirstResponder() } 

Кроме того, неплохо иметь метод и свойство с тем же именем – не уверен в том, что там есть приоритет, но, скорее всего, в какой-то момент это может сбить с толку.

Вы также можете создать выход для datePicker. @IBOutlet слабый var datePicker: UIPickerView!

то в вашей функции

 @IBAction func DoneButton(sender: UIButton) { datePicker.hidden = true } 
  • Программно вернуться к первому контроллеру при событии первого контроллера THAT
  • «При попытке добавить узел, который уже имеет родительскую ошибку, при попытке создать узел
  • resignFirstResponder () в сторонних клавиатурах
  • Таблица заполнения с ответом API Swift
  • Могу ли я иметь статический индекс в Swift?
  • Как оживить скремблирование букв на своем месте в Swift?
  • Обеспечьте соответствие swift классу объективному протоколу c, который определяет свойства
  • Тип «title» имеет разную опциональность, чем требуется по протоколу «MKAnnotation»
  • Как открыть новый экран контакта напрямую?
  • ViewWillDisappear не получает вызов searchcontroller
  • swift ios9: попытка начать обновление местоположения MapKit без запроса авторизации местоположения
  • Как я могу сосредоточить карту на местоположении пользователя в быстром?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.