1

Как говорится в заголовке, я использую раскадровки функций iOS5. У меня есть текстовое поле, которое при постукивании должно отображать модальный вид (с помощью подборщика). Мне было интересно, может ли это действие быть вызвано с помощью segues?iPhone Представление модального вида UITextField с использованием segues?

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

ответ

7

Есть некоторые мысли на ваши вопросы, я надеюсь, что они могут быть полезны:

  • Если ваш viewController принимает UITextFieldDelegate, то вы можете реализовать дополнительный метод делегата textFieldDidBeginEditing:, и получить уведомление, когда textField становится первый ответчик и делать то, что вы хотите сделать, например представляя контроллер модального вида (UITextFieldDelegate Protocol Reference). Однако, когда textField станет первым ответчиком, и клавиатура выскочит, в то же время вы также выйдете из модального представления, что не очень удобное для пользователя.

  • Если у пользователя есть только ограниченный выбор, почему, используя textField?

  • Другой вариант может быть реализован textFieldShouldBeginEditing: (опять же, вам необходимо принять UITextFieldDelegate). Per Apple,

Когда пользователь выполняет действие, которое, как правило, инициировать сеанс редактирования, текстовое поле вызывает этот метод первым, чтобы увидеть, если редактирования фактически должно продолжаться. В большинстве случаев вы бы просто вернули ДА из этого метода, чтобы разрешить редактирование.

Вы будете return NO, чтобы клавиатура не появлялась, а вместо этого выставляли свой модальный контроллер. Вы делаете это, сначала звоните presentViewController:animated:completion:, а затем возвращаете NO (UIViewController Class Reference). Я не тестировал это, но, похоже, он должен работать.

  • Я не уверен на 100%. Я думаю, что я где-то слышал, что segue s в раскадровке вызывается с UIControlEvent эквивалентом UIControlEventTouchUpInside - подумайте о UIButton (возможно, я ошибаюсь), но если это правда, когда UITextField становится первым ответчиком, то есть не контрольным событием, поэтому segue не будет работать.
0

Weeel, textFieldShouldBeginEditing: подход хорошо работает на ios8

однако он не работает последовательно на ios7

Я закончился настройка textfield.enabled = NO и наложения UITextField с прозрачным UIButton для тигрования презентации VC