Я добавил модуль флаттера в свое существующее приложение iOS. В настоящее время для тестирования я показываю FlutterViewController
с заранее созданным FlutterEngine
в AppDelegate
. Хотя экран трепетания отображается правильно, я не могу вернуться к нативному приложению iOS.
Небольшой поиск в Google показал, что SystemNavigator.pop()
сделает работу, но она не работает для меня, как упоминалось здесь и здесь . Как я go могу вернуться к своему родному iOS приложению?
Мой быстрый код, показывающий, как экран флаттера выглядит так
@objc func showFlutter() {
let flutterEngine = (UIApplication.shared.delegate as! AppDelegate).flutterEngine
let flutterViewController =
FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
flutterViewController.modalPresentationStyle = .fullScreen
present(flutterViewController, animated: true, completion: nil)
}
Мой боковой код флаттера, чтобы вернуться к родное приложение iOS выглядит так, как будто оно не работает.
appBar: AppBar(
leading: new IconButton(
icon: new Icon(Icons.arrow_back, color: Colors.white),
onPressed: () => SystemNavigator.pop(),
),
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
Если я заменим SystemNavigator.pop()
на Navigator.of(context).pop()
, оно тоже не будет работать, а покажет черный экран , который имеет смысл, поскольку у него нет запасного маршрута. Насколько я понимаю, это не выскакивает экран, а закрывает целое приложение. Не так ли? Как я могу решить это?