JDibble
JDibble

Reputation: 744

FreshMvvm - Closing the child page of a page in FreshTabbedNavigationContainer

I have set up a FreshTabbedNavigationContainer with 5 pages. Within the 5th tabbed page which is a SettingsPage where there is a way to display and AboutPage that is displayed via the SettingsPageModel like this public Command AboutCommand { get { return new Command(() => { CoreMethods.PushPageModel<AboutPageModel>(); }); } }

When the user navigates away by selecting another tab, this other tab is displayed correctly. If the user selects the SettingsPage via the tab, then the child AboutPage is automatically displayed. I want to remove AboutPage from the navigation stack when another tab page is selected.

I have tried this in the AboutPage.xaml.cs

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        ((AboutPageModel)BindingContext).CoreMethods.RemoveFromNavigation();
    }

This works BUT if the back button is pressed on the app when in the AboutPage then it has already been removed from the navigation stack, and the app crashes.

How can I check if a PageModel is still in the navigation stack?

Upvotes: 0

Views: 732

Answers (1)

JDibble
JDibble

Reputation: 744

I have managed to resolve the problem :)

In the App.xaml.cs file in the App constructor where I create the FreshTabbedNavigationContainer, after setting the MainPage

MainPage = tabbedNavigation;

I then add the following code

tabbedNavigation.CurrentPageChanged += (sender, e) => {
   tabbedNavigation.PopToRoot();
};

It works perfectly.

Upvotes: 0

Related Questions