Lost "Back" navigation button in SplitView

If I use a PointerCallBack = WeakAddressOf ShowScreen in a SplitView on iPad, the back navigation button is not available. The navigation button is only on iPhone visible.

Public Sub ShowProtocol()
Var MySreen as new ScrBrewProtocols
if isIPad then
self.ParentSplitView.Detail = MySreen
else
self.PushTo(MySreen)
end if
End Sub


I have tried to add a button at runtime, but the button is not visible.

if isIPad then
Var bButton As New MobileToolbarButton(MobileToolbarButton.Types.Back)
bButton.Caption = “< Back”
self.HasNavigationBar = True
LeftNavigationToolbar.AddButton(bButton)
end if

Is there any way to have a navigation button in a SpiltView with PointerCallBack?

I don’t really understand why you are expecting to see a back button on the Master view of the SplitScreen.

On iPhone it seems you have Brewing Recipes (Home Screen) then Brewing Protocols (child screen).
On iPad, both screens are displayed at the same time, there is no screen to go back to.

If I select an entry from the list in the main (left) area and push the new screen into the detail (right) area, I have a back navigation button.

Example:
Select “Own Recipes” => push the screen ScreenOwnRecipes into the detail area in the split view. You can see a list of recipes in the detail view.

If I select an entry form the list in the detail area, I can see the details of the selected entry and I have a back navigation button to screen “Own Recipes”.

If I touch on the PDF icon in this details screen, it calls a PointerCallBack from the container which is the contents of a ScrollableArea in the DetailsScreen. The Delegation call ShowPDF in the DetailsScreen. Now the back button is not available.

Depending on where the ShowProtocol / ShowPDF method is located, can you change it to this:

Public Sub ShowProtocol()
Var MySreen as new ScrBrewProtocols

self.PushTo(MySreen)

End Sub

Self would be the Screen currently displayed in the Detail portion of the SplitScreen

1 Like

That solves the problem.
While last screen was placed into the details area of a split screen, I can use this:

self.PushTo(MySreen)

Thank you.

1 Like
Forum for Xojo Programming Language and IDE. Copyright © 2021 Xojo, Inc.