Navigation
https://flutter.dev/docs/get-started/flutter-for/ios-devs#navigation
How do I navigate between pages?
iOS 에서 view controllers 사이 이동을 하려면, 화면 표시를 하는 view controllers 의 스택을 관리하는 UINavigationController 를 사용할 수 있다.
Flutter 에서는 Navigator, Routes 를 사용하여 비슷하게 구현한다.
Route 는 앱의 screen, page 의 추상적인 개념이다.
Navigator 는 routes 를 관리하는 위젯이다.
route 는 거의 UIViewController 와 일치한다.
navigator 는 iOS UINavigationController 와 유사하게 동작한다. 새로운 뷰로 이동할 것인지 뒤로 갈 것인지에 따라서 push(), pop() 을 사용할 수 있다.
페이지 사이를 이동하기 위해서는 두가지 옵션이 있다.
- 특정한 route name 을 지정한다.
- route 로 바로 이동한다.
Navigator 에 route 의 이름을 넣어줌으로써 route 로 이동한다.
Navigator class 는 플루터에서 라우팅을 다룬다. stack 에 넣어둔 route 를 다시 빼내는데 이용된다.
push() 리턴값은 Future 의 완료를 기다리면서 완료한다.
How do I navigate to another app?
https://flutter.dev/docs/get-started/flutter-for/ios-devs#how-do-i-navigate-to-another-app
iOS 에서는 유저를 다른 앱으로 이동시키려면 URL scheme 을 사용한다.
flutter 에서 이 기능을 구현하기 위해서는 네이티브 플랫폼 코드를 통합하거나 url_launcher 와 같은 plugin 을 사용한다.
How do I pop back to the iOS native viewcontroller?
Dart 코드에서 SystemNavigator.pop() 을 호출하면 iOS 코드로 이렇게 된다.
(keyWindow.rootViewController 가 UINavigationController 이면 pop 을 한다.)
만약 원하는대로 안 된다면 임시적인 iOS code 를 호출할 수 있는 platform channel 을 만들 수 있다.
'Programming > Dart & Flutter' 카테고리의 다른 글
Flutter 5일 차 - Flutter for iOS devs (5/8), Gesture detection and touch event handling, Theming and text (0) | 2020.07.30 |
---|---|
Flutter 4일 차 - Flutter for iOS devs (4/8), Threading & asynchronicity (0) | 2020.07.30 |
Flutter 2일 차 - Flutter for iOS devs (2/8), Views (0) | 2020.07.27 |
Flutter 1일 차 - Flutter for iOS devs (1/8), Views (0) | 2020.07.26 |
Dart 7일 차 - Language Tour (7/7) (0) | 2020.07.26 |