Question: [I found the question but does not have solution in code](https://stackoverflow.com/q/53298615/1136023)

I want to have data when backpress/manual back happens. I am using `navigateUp()` to go back. How can I pass data to previous fragment? `navigateUp()` does not have any facility to pass data to previous fragment. Even I did not find solution using [Safe Args](https://developer.android.com/topic/libraries/architecture/navigation/navigation-pass-data#Safe-args). It's passing data forward. I want to have in backward Frad B -> Frag A.

My code to go back to previous fragment

```
Navigation.findNavController(view).navigateUp()

```

[![enter image description here](https://i.stack.imgur.com/b27YH.png)](https://i.stack.imgur.com/b27YH.png)

My question is, How can i get data in previous fragment. I can navigate to Frag A from Frag B using

Answer: 
To pop destinations when navigating from one destination to another, add an `app:popUpTo` attribute to the associated `<action>` element.
To navigate from fargment2 to Fragment1 with arguments, specify in the navigation graph the `action` of the caller fragment and the `arguments` of the destination fragment :

```
<fragment
    android:id="@+id/fragment2"
    android:name="com.example.myapplication.Fragment2"
    android:label="fragment_2"
    tools:layout="@layout/fragment_2">

    <action
        android:id="@+id/action_2_to_1"
        app:destination="@id/fragment1"
        app:popUpTo="@+id/fragment1"/>
</fragment>
<fragment
    android:id="@+id/fragment1"
    android:name="com.example.myapplication.Fragment1"
    android:label="fragment_1"
    tools:layout="@layout/fragment_1">

        <argument
            android:name="someArgument"
            app:argType="string"
            app:nullable="false"
            android:defaultValue="Hello Word"/>
</fragment>

```

In your Fragment2 class, you call your action and pass your argument:

```
   val action = Fragment2Directions.action2To1("MY_STRING_ARGUMENT")
        findNavController().navigate(action)

```
You can just call

`findNavController().navigate(R.id.fragment1, args)`

where args is your bundle.
In fragment1, fetch the data from the arguments