169 похожих чатов

Всем доброго времени суток, у меня есть viewController, который я

создал как swift файл. Открываю этот controller через код ниже и вызываю метод на flutter

let controller: FlutterViewController = window?.rootViewController as! FlutterViewController

let navigationController = UINavigationController(rootViewController: controller)
navigationController.setNavigationBarHidden(true, animated: false)
self.window!.rootViewController = navigationController
self.window!.makeKeyAndVisible()

Но когда я пытаюсь закрыть этот controller (по кнопке закрыть) через код ниже, то у меня при возврате на flutter приложение, крашится с ошибкой libc++abi: terminating due to uncaught exception of type NSException. Разное попробовал, но не понимаю в чем проблема

onCancel: {
result(nil)
navigationController.dismiss(animated: true)
}

12 ответов

24 просмотра

Оффтоп. Тут только Флаттер.

А на StackOverflow смотрел? Наверняка ты не первый с такой ошибкой.

Вот первая же ссылка https://stackoverflow.com/questions/64864197/error-on-flutter-ios-libcabi-dylib-terminating-with-uncaught-exception-of-ty

Bobur-Irgashev Автор вопроса

А ты уверен, что можно nil возвращать? Может быть, в Дарт-коде result не nullable, из-за этого Exception.

Sergio Molchanovsky
А ты уверен, что можно nil возвращать? Может быть,...

nil возвращать льзя. Не ясно какой NSException, так что это гадание на кофейной гуще. (Скорее всего кто-то делает result() не в основном потоке, просто обожаю)

Bobur-Irgashev Автор вопроса
Sergio Molchanovsky
А ты уверен, что можно nil возвращать? Может быть,...

Попробовал «» в result, но равно крашится приложение. Я думал что надо как то зарегестрировать этот controller, где-то в storyboard хз

Bobur-Irgashev Автор вопроса
Sergey Mogilnikov
Какой NSException, что в описании к нему?

Trying to dismiss the presentation controller while transitioning already. (<_UIFullscreenPresentationController: 0x7f9a78fa9fd0>) 2023-05-15 14:21:56.921996+0500 Runner[85914:8853804] *** Assertion failure in -[UIPresentationController _initViewHierarchyForPresentationSuperview:inWindow:]_block_invoke(), UIPresentationController.m:1594 2023-05-15 14:21:57.080962+0500 Runner[85914:8853804] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'The _computeToEndFrameForCurrentTransition block is nil inside the _transitionViewForCurrentTransition block, value of outerStrongSelf currently : <_UIFullscreenPresentationController: 0x7f9a78fa9fd0>. This most likely indicates that an adaptation is happening after a transtion cleared out _computeToEndFrameForCurrentTransition. Captured debug information outside block: presentationController : <_UIFullscreenPresentationController: 0x7f9a78fa9fd0> presentedViewController : <UINavigationController: 0x7f9a802a1600> presentingViewController : <Runner.MyIdController: 0x7f9a79baa6b0>' *** First throw call stack: ( 1 CoreFoundation 0x000000011325c78b __exceptionPreprocess + 242 1 libobjc.A.dylib 0x000000010ec2ab73 objc_exception_throw + 48 2 Foundation 0x0000000111d11109 -[NSMutableDictionary(NSMutableDictionary) classForCoder] + 0 3 UIKitCore 0x000000012b4898ac __80-[UIPresentationController _initViewHierarchyForPresentationSuperview:inWindow:]_block_invoke + 3591 4 UIKitCore 0x000000012b486885 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke.421 + 404 5 UIKitCore 0x000000012c489971 -[_UIAfterCACommitBlock run] + 57 6 UIKitCore 0x000000012c489e71 -[_UIAfterCACommitQueue flush] + 191 7 UIKitCore 0x000000012bed06eb _runAfterCACommitDeferredBlocks + 782 8 UIKitCore 0x000000012bebefa2 _cleanUpAfterCAFlushAndRunDeferredBlocks + 96 9 UIKitCore 0x000000012bef4be1 _afterCACommitHandler + 58 10 CoreFoundation 0x00000001131b9c12 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 11 CoreFoundation 0x00000001131b457f __CFRunLoopDoObservers + 515 12 CoreFoundation 0x00000001131b4aa2 __CFRunLoopRun + 1121 13 CoreFoundation 0x00000001131b4264 CFRunLoopRunSpecific + 560 14 GraphicsServices 0x000000011afdf24e GSEventRunModal + 139 15 UIKitCore 0x000000012bec07bf -[UIApplication _run] + 994 16 UIKitCore 0x000000012bec55de UIApplicationMain + 123 17 Runner 0x0000000102c9ed7f main + 63 18 dyld 0x000000010c0b1384 start_sim + 10 19 ??? 0x0000000203a86310 0x0 + 8651301648 ) libc++abi: terminating due to uncaught exception of type NSException Message from debugger: Terminated due to signal 6

https://stackoverflow.com/questions/25762466/trying-to-dismiss-the-presentation-controller-while-transitioning-already Если вкратце: пытаешься убрать контроллер который занят

Bobur-Irgashev Автор вопроса
Sergey Mogilnikov
https://stackoverflow.com/questions/25762466/tryin...

Хз почему но вместо того чтобы вызывать dismiss внутри onCancel и onResult, я перетащил его ниже present и это сработало func startMyId( passportData: String?, dateOfBirth: String?, lang: String, result: @escaping FlutterResult, navigationController: UINavigationController ) { let myIdController = MyIdController( passportData: passportData, dateOfBirth: dateOfBirth, lang: lang, onResult: { data in result(data) }, onCancel: { result(nil) } ) myIdController.modalPresentationStyle = .pageSheet navigationController.present(myIdController, animated: true, completion: nil) navigationController.dismiss(animated: true) }

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта