JavaFx: Как передать значение от первого контроллера до третьего контроллера, проходящего вторым контроллером?

Описание

У меня есть три класса контроллеров, MenuController и MyAccountController и EditAccountController, у меня есть метод showMyAccount () в MenuController и editMyAccount () в MyAccountController и updateMyAccount() в EditAccountController. В моем MenuController У меня есть ImageView с id=accountImage, когда пользователь нажимает на это изображение. Он получает новый этап, содержащий информацию о его accoount.It пользователь click editAccountButton мой вызов программы editMyAccount(), чтобы показать другое окно, чтобы изменить его информацию об учетной записи, пользователь может изменить свою фотографию учетной записи, когда он нажмет saveChange, это должно измениться на изображение ViewImage, но это не потому, что у меня нет способа передать imageView accountImage из MenuController для редактированияAccountController, проходящего через MyAccountController. Как я могу передать параметр (id FXMl) от первого контроллера до третьего контроллера, проходящего вторым контроллером.

код

В классе MenuController первое действие

       @FXML
ImageView accountImage;

 public void showMyAccount() {

    Stage myAccount = new Stage();
    FXMLLoader fxm = new FXMLLoader(getClass().getResource("MyAccount.fxml"));

    try {

        Parent parent = (Parent) fxm.load();
        Scene scene = new Scene(parent);

        scene.setFill(null);
        myAccount.setScene(scene);

    } catch (Exception e) {
        e.printStackTrace();
    }

    myAccount.initStyle(StageStyle.DECORATED);
    myAccount.centerOnScreen();
    myAccount.getIcons().add(new Image("/Images/Casque.png"));
    myAccount.initOwner(InnerStage);
    myAccount.setTitle("Mon compte");
    myAccount.setResizable(false);
    myAccount.show();
    myAccount.addEventHandler(KeyEvent.ANY, new EventHandler<KeyEvent>() {
        @Override
        public void handle(KeyEvent event) {

            if (event.getCode() == KeyCode.ESCAPE) {

                myAccount.hide();
            }
        }
    });
    MyAccountController accountController = fxm.getController();
    accountController.setStage(myAccount);
    accountController.setProfileImage(accountImage);//passing parameter to MyAccountController

В классе MyAccountController secondAction

 public void editMyAccount() {
        Stage editAccount = new Stage();
        FXMLLoader fxm = new FXMLLoader(getClass().getResource("EditAccount.fxml"));
        try {

            Parent parent = (Parent) fxm.load();
            Scene scene = new Scene(parent);
            scene.setFill(null);
            editAccount.setScene(scene);
        } catch (Exception e) {
            e.printStackTrace();
        }

        editAccount.initStyle(StageStyle.DECORATED);
        editAccount.initModality(Modality.APPLICATION_MODAL);
        editAccount.centerOnScreen();
        editAccount.setResizable(false);
        editAccount.setTitle("Editer compte");
        editAccount.getIcons().add(new Image("/Images/Casque.png"));
        editAccount.initOwner(stage.getOwner());
        editAccount.show();
        editAccount.addEventHandler(KeyEvent.ANY, new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent event) {

                if (event.getCode() == KeyCode.ESCAPE) {

                    editAccount.close();
                }
            }
        });
        EditAccountController editAccountController = fxm.getController();

        editAccountController.setStage(editAccount);
        String userNameText = this.userName.getText();
        String passwordText = this.password.getText();
        Image imageAccount = this.accountImage.getImage();
        editAccountController.setInformation(imageAccount, userNameText, passwordText);
        stage.close();

    }

    ImageView setProfileImage(ImageView accountImage) {
        return accountImage; //How can i pass this imageview to nextcontroller "EditAccountcontroller"
    }

Третий контроллер EditAccountController. Как этот контроллер может получить идентификатор изображения из второго контроллера (этот идентификатор поступает от первого контроллера).

 public void editMyAccount() throws FileNotFoundException, IOException {

        String name = userNameField.getText().trim();
        String password = passwordField.getText();
        User user = new User(name, password);
        if (new UserDao().FindString(name) == null || (new UserDao().FindString(name) != null && name.equals(currentName))) {
            if (file != null) {

                new UserDao().updateUser(currentName, user, file);
                clearFields();
                succesMessage();
                hideStage();
           //Here i need change imageView image id=accountImage

            } else {
                new UserDao().update(currentName, user);
                clearFields();
                succesMessage();
                hideStage();

            }

        } else {
            existAccount();
        }
    }

StackTrace

Вызвано: java.lang.NullPointerException в hmproject.EditAccountController.editMyAccount(EditAccountController.java:263)   ... 62 больше

Это исключение вызвано, потому что я получаю null, когда мне нужно изменить изображение imageView accountImage. Любой знает, как я могу обновить параметр или node контент от другого контроллера?