์ด๋ฒ๊ธ์ ๊ต์ฅํ ์งง๊ณ ๊ฐ๋จํฉ๋๋ค. ์๋๋ฉด ์ ๊ฐ ํ ๋ฉ์ฒญํ ์ค์๋ฅผ ์ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. popUntil์ ํ ๋๋ ๋ฐ๋์ ์ค์ ํด์ผ ํ๋ ๊ฒ์ด ์์ต๋๋ค. ๋ฐ๋ก routeSettings ์ ๋๋ค. ์ด๊ฒ์ ์ค์ ํ์ง ์์ผ๋ฉด ModalRoute.withName()์ ์๋ง ๋ฃ์ด๋ ๊ฒ์ํ๋ฉด์ด ๋น๋๋ค. ๊ฐ๋จํ ์๊ฐํ๋ฉด ํด๋น ์ด๋ฆ์ด ํฉ๊ฒฉ๋ช ๋จ์ ์๋๋ฐ ์๋ค๊ณ ๋ฐ๋ฐ ์ฐ๊ธฐ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ค์ ์์์ฝ๋๋ฅผ ๋ณด์๋ฉด ์ดํด๊ฐ ์ฌ์ฐ์ค ๊ฒ ์ ๋๋ค.
// popUntil์ด ์๋๋ ๊ฒฝ์ฐ
class MyRouter {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case "SPLASH_SCREEN":
return MaterialPageRoute( // RouteSettings๊ฐ ์์
builder: (context) => SplashScreen(),
);
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}'),
),
),
);
}
}
}
// popUntil์ด ๋๋ ๊ฒฝ์ฐ
class MyRouter {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case "SPLASH_SCREEN":
return MaterialPageRoute( // RouteSettings๊ฐ ์์
settings: RouteSettings(name: "SPLASH_SCREEN") // ์ด ์ค์ ์ง์ค
builder: (context) => SplashScreen(),
);
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('No route defined for ${settings.name}'),
),
),
);
}
}
}
'Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Flutter์์ Webview(์น๋ทฐ) ์ฌ์ฉํ๊ธฐ (0) | 2021.07.01 |
---|---|
Flutter / multi_image_picker Asset์ Image๋ก ๋ณด์ด๊ฒ ํ๊ธฐ (0) | 2021.02.19 |
Flutter Provider + '?' ํจํด (feat. ChangeNotifier, Mobx, BLoC, etc..) (0) | 2020.09.12 |
Flutter / 4ํ : Flutter์ ์ํ๊ด๋ฆฌ (0) | 2020.08.01 |
Dart / 1ํ : Dart์ ์ค์ํ ๊ฐ๋ (0) | 2020.07.26 |