Skip to main content

How to Go to Another Screen in Power Apps with Navigate

· 5 min read
Jagdish Kumawat
Founder @ Dewiride

A button that opens another screen needs one formula: Navigate, with the name of the screen. Put it in the button's OnSelect, and selecting the button changes the screen.

Syntax​

Syntax
Navigate( Screen [, Transition [, UpdateContextRecord ] ] )
  • Screen is the screen to show.
  • Transition is optional: how the screens change. The default, ScreenTransition.None, replaces the screen at once. The others are Cover, CoverRight, Fade, UnCover and UnCoverRight.
  • UpdateContextRecord is optional: a record that sets context variables on the new screen, the way UpdateContext does.

Navigate works only in behavior properties such as OnSelect (Back and Navigate functions).

Prerequisites​

Step 1: Set the Button's OnSelect​

Select the button, choose OnSelect in the property list, and type:

btnMyPlanHS → OnSelect
Navigate('My Plan Screen')

The screen name has spaces, so it goes in single quotes, like any name with spaces or special characters (Operators and identifiers). Studio shows no errors:

The formula bar with the OnSelect property of btnMyPlanHS set to Navigate('My Plan Screen'), No formula errors present, and the Home screen on the canvas with the My plan and My team buttons

Step 2: Test It​

Preview the app with F5 (How to Preview a Canvas App in Power Apps Studio) and select the button. In the example, My plan opened the My Plan screen:

The app in preview showing the My Plan screen: a teal header with a Back button and the title My plan, and the message There's no plan for Managing Director yet. Competencies appear here once a manager adds them

You can also test on the canvas without previewing: hold Alt and select the button. Studio itself suggests this in a Did you know? tip after you close preview.

When the new screen appears, its OnVisible formula runs (How to Run a Formula When a Screen Opens in Power Apps).

Passing Values to the Screen​

The third argument sets context variables on the screen you open, which is the only way to set one from another screen:

Example
Navigate('Details Screen', ScreenTransition.Fade, { locItemId: 12 })

On Details Screen, locItemId is then 12, ready for its formulas to use.

Common Mistakes​

MistakeWhat happensDo this instead
Writing the screen name without quotes when it has spacesA formula errorNavigate('My Plan Screen')
Putting Navigate in a non-behavior property such as TextBehavior function in a non-behavior propertyUse OnSelect
Using Navigate to go back where you came fromIt always goes to that one screenUse Back

Troubleshooting​

SymptomLikely causeFix
Nothing happens when you click the button on the canvasClicking on the canvas selects the controlPreview with F5, or hold Alt while clicking
Name isn't valid on the screen nameA typo in the namePick the name from the suggestions as you type

FAQ​

Which transition should I use?​

The default, None, is the fastest. Use another only if it helps people see where they went.

Can I navigate to a screen in another app?​

No. Navigate works between screens of the same app.

Conclusion​

Navigate('Screen Name') in a button's OnSelect opens the screen. Add a transition or a record of context variables when you need them, and test with F5 or Alt+click.

Additional Resources​

Stay Updated

Subscribe to our newsletter for the latest tutorials, tech insights, and developer news.

By subscribing, you agree to our privacy policy. Unsubscribe at any time.