При чтении тегов NFC iOS отображает список действий в нижней части экрана. Вы можете использовать этот лист действий для отображения процесса чтения, а также для отображения результата.
Общая проблема заключается в том, что разработчик приложения и пользователь имеют все возможности контроля над этой таблицей действий, кроме настройки alertMessage. Вы не можете контролировать продолжительность его отображения или точно контролировать время его исчезновения. Я видел здесь похожий вопрос о сокрытии листа действий NFC. Я знаю, что не могу этого сделать. Так какая альтернатива?
Приведенный ниже код пытается отобразить значение, прочитанное на этом листе действий, но оно исчезает примерно через 1 секунду после его представления, что недостаточно для того, чтобы пользователь мог обработать отображаемую информацию. В качестве альтернативы я показываю ту же информацию во всплывающем диалоговом окне, используя UIAlertController, чтобы пользователь мог видеть прочитанное значение столько времени, сколько необходимо, прежде чем решить его закрыть.
Особая проблема заключается в том, что всплывающее диалоговое окно появляется за листом действий на целую секунду, и весь процесс выглядит бессвязным и неуклюжим.
Существует ли более удобный способ отобразить результат чтения, позволяющий пользователю продолжать видеть прочитанное значение и контролировать его, когда оно исчезает? Это важно для более длинных и сложных считываемых значений, чтение и интеллектуальная обработка которых разработчику приложения занимает некоторое время.
tag.readNDEF { сообщение, ошибка в если пусть сообщение = сообщение { let textMessage = self.parsePayloads(payloads: message.records) ?? "(никто)" session.alertMessage = "Поле прочитано: \(textMessage)" сеанс.инвалидате() DispatchQueue.main.async { let alertView = UIAlertController (заголовок: «Чтение поля», сообщение: textMessage, предпочтительный стиль: UIAlertController.Style.alert) alertView.addAction(UIAlertAction(заголовок: «ОК», стиль: .default)) self.viewController?.present(alertView, анимированный: true) }} }

