¿Cómo devolver el valor de una etapa antes de cerrarla?

Antes que nada, perdón por el mal inglés.

Aquí está el caso:

Tengo una "etapa principal" donde presiono un botón para abrir una "segunda etapa" donde tengo una tabla, el usuario selecciona un elemento de la tabla y hace clic en el botón "asignar" (que es solo un botón de confirmación), una vez que se hace clic, debe devolver el código del elemento seleccionado en la tabla a la etapa principal y cerrar la segunda etapa.

Aquí está el código que importa.

Tengo una variable INT que debe tomar el valor de una función:

codigo = controller.setVista(this, usuario, password);

La función "setVista" es así:

public int setVista(ListHorarios vista, String usuario, String password) {
this.vista = vista;
this.usuario = usuario;
this.password = password;
this.inicializarTabla();
this.actualizarTabla(0, "%");

btnSeleccionar.setOnAction(e -> {
    asignarSeleccion();
    Stage stage = (Stage) btnSeleccionar.getScene().getWindow(); 
    stage.close();
});
    return codigo_horario;
}

Y la "asignaciónSeleccion" así:

private void asignarSeleccion() {
    final HorarioTableModelo aux_horario = getTablaSeleccionada();
    posicion = datos.indexOf(aux_horario);
    if (aux_horario != null) {
        codigo_horario = aux_horario.getCodigo();
    }
}

Mi problema es que no puedo obtener el valor "codigo_horario" en la primera variable "codigo" antes de que cierre la etapa, ¿qué me falta?

Respuestas a la pregunta(3)

Su respuesta a la pregunta