Navigator 사용하기(push,pop)

pharmDev·2024년 11월 8일

Navigator.of(context).push와 Navigator.of(context).pop 는
Flutter에서 화면 전환(페이지 이동)을 관리하는 방법입니다.
이 두 메서드는 사용자가 특정 화면에서 다른 화면으로 이동하고 다시 돌아오도록 하는 네비게이션 작업을 수행합니다.

1. Navigator.push
화면을 스택에 추가하여 이동

push 메서드는 새로운 화면을 네비게이션 스택에 추가합니다.
새로운 화면이 스택 위에 추가되므로 현재 화면에서 새 화면으로 전환됩니다.
예를 들어, HomeScreen에서 settingScreen으로 이동할 때 Navigator.push를 사용합니다:


Navigator.of(context).push(
  MaterialPageRoute(
    builder: (BuildContext context) {
      return settingScreen(
        maxNumber: maxNumber,
      );
    },
  ),
);

위 코드에서:

  • Navigator.push는 새로운 화면인 settingScreen을 현재 화면(HomeScreen) 위에 추가합니다.
  • MaterialPageRoute는 전환 애니메이션 등을 제공하며, Flutter에서 페이지를 정의하는 방법 중 하나입니다.
  • builder는 settingScreen을 생성하는 함수입니다.
    이렇게 하면 HomeScreen에서 settingScreen으로 전환됩니다.

2. Navigator.pop
스택에서 현재 화면을 제거하여
이전 화면으로 돌아가기

pop 메서드는 현재 화면을 스택에서 제거하여 이전 화면으로 돌아가게 합니다.
이전 화면이 다시 화면에 표시되며, pop 메서드를 호출할 때 반환 값을 이전 화면에 전달할 수 있습니다.
예를 들어, settingScreen에서 HomeScreen으로 돌아가기 위해 pop을 사용합니다:


Navigator.of(context).pop(
  maxNumber.toInt(),
);

위 코드에서:

Navigator.pop은 현재 화면(settingScreen)을 스택에서 제거합니다.
maxNumber.toInt() 값을 pop에 전달하여, 이 값을 이전 화면으로 반환합니다.
HomeScreen의 onSettingIconPressed 메서드에서 이 반환 값을 result 변수에 받아, maxNumber에 업데이트합니다.

profile
코딩을 배우는 초보

0개의 댓글