- Откройте AlertDialog — работает нормально
- Откройте VNDocumentCameraViewController сканер
- Закрыть сканер
- Попробуйте снова открыть AlertDialog — не отображается
Код: Выделить всё
@Composable
actual fun rememberDocumentScanner(
onResult: (Result[*]>) -> Unit,
options: DocumentScannerOptions
): DocumentScanner {
val localViewController = LocalUIViewController.current
return object : DocumentScanner {
override fun scan() {
val controller = VNDocumentCameraViewController()
controller.setDelegate(
DocumentScannerDelegate(
onError = {
controller.dismissViewControllerAnimated(true) {
restoreComposeWindow(localViewController)
}
// error handling
},
onCancel = {
controller.dismissViewControllerAnimated(true) {
restoreComposeWindow(localViewController)
}
},
onResult = { result ->
controller.dismissViewControllerAnimated(true) {
restoreComposeWindow(localViewController)
}
// result handling
}
)
)
localViewController.presentViewController(controller, animated = true) {
// scanner configuration
}
}
}
}
fun restoreComposeWindow(localViewController: UIViewController?) {
val view = localViewController?.view ?: return
view.setNeedsLayout()
view.layoutIfNeeded()
view.setNeedsDisplay()
}
- ОК. Сканер открывается и работает отлично.
- ОК. Обычные компоненты пользовательского интерфейса (TextField, Button, Navigation) работают нормально.
- FAIL AlertDialog — не отображается после сканера.
- FAIL DatePickerDialog — не отображается после сканера.
- FAIL ExpedDropdownMenuBox – не отображается после сканирования
- FAIL Все компоненты всплывающих окон не работают
Подробнее здесь: https://stackoverflow.com/questions/797 ... tem-on-ios