Navigation¶
Define how pages appear and enable a user to navigate through your application. If a modal page is set to full screen, all pages opened from that modal page will also appear in full screen. When you close a full-screen modal page, all full-screen modal pages in the background are closed automatically and the parent page appears.
The properties defined in Action are also applicable to this action.
Navigation Properties¶
Property | Type | Required | Default |
---|---|---|---|
BackStackVisible | boolean |
Optional | true |
ClearHistory | boolean |
Optional | false |
ModalPage | boolean |
Optional | false |
ModalPageFullscreen | boolean |
Optional | false |
NavigationType | enum |
Optional | "Inner" |
OuterNavigation | boolean |
Optional | false |
PageMetadata | multiple | Optional | |
PageToOpen | PageOrRule | Optional | |
Transition | Transition | Optional | |
_Type | const |
Required |
BackStackVisible¶
If true, records the navigation in the backstack, allowing page to be navigated back via the Back button. Otherwise if false, subsequent navigation away from the page will prevent returning to it.
- type:
boolean
- default:
true
ClearHistory¶
If true, the navigation back-stack will be cleared, Back button will be disappeared.
- type:
boolean
- default:
false
ModalPage¶
Indicates if a page is modal.
- type:
boolean
- default:
false
ModalPageFullscreen¶
If true, the modal page appears in full screen.
Note: By design, modal pages always appear in full screen on mobile devices.
- type:
boolean
- default:
false
NavigationType¶
To trigger navigation based on the defined type.
- type:
enum
- default:
Inner
The value of this property must be equal to one of the known values below.
Value | Description |
---|---|
Inner |
Navigation to be triggered on current page level. For FlexibleColumnLayout, it would be triggered on current column. This is default value for all scenarios except for when triggered within FlexibleColumnLayout. |
Outer |
Navigation to be triggered on parent page level. Specific for page within BottomNavigation, Tabs, and FlexibleColumnLayout. |
Cross |
Navigation to be triggered on next column. Specific for page within FlexibleColumnLayout. This is the default value if action is triggered within FlexibleColumnLayout. |
OuterNavigation¶
[Deprecated. Use NavigationType
instead.] Specific for navigation triggered from within a tab page, no effect on
normal page. If true, user would be navigated to the specified page at outer level (parent page with the bottom
navigation control). If false, user would be navigated to the specified page at tab level / within the tab content.
- type:
boolean
- default:
false
PageMetadata¶
Page's metadata to navigate to, when the PageMetadata is specified it will take preference over the PageToOpen.
The properties defined in Page are also applicable to it.
- type: multiple
Either one of:
string
object
PageToOpen¶
Page/Rule to navigate to, references a .page file.
- type: PageOrRule
Transition¶
Optional custom page navigation transition effect. It only applies to page-to-page navigation (including within modal dialog). It does not apply to opening and closing of modal dialog and does not apply to tab switching in BottomNavigation
- type: Transition
_Type¶
- type:
const
The value of this property must be equal to:
"Action.Type.Navigation"
Action Result¶
Refer to the MDK Guide to understand what an action result is.
The success ActionResult of this action is a NavigationEntry. The failure ActionResult is an error message.
Examples¶
// Navigation.action (use PageMetadata)
{
"PageToOpen": "/MDKApp/Pages/Dummy.page",
"PageMetadata": "{ \"Caption\": \"PageMetadata Test\", \"_Type\": \"Page\", \"_Name\": \"PageMetadataTest\", \"Controls\": [ { \"Sections\": [ { \"Header\": { \"Caption\": \"Actions\" }, \"ObjectCells\": [ { \"ObjectCell\": { \"AccessoryType\": \"disclosureIndicator\", \"Description\": \"another pagemetadata\", \"OnPress\": \"/MDKDevApp/Actions/Navigation/PageMetadata.action\", \"Title\": \"Next Page\" } } ], \"_Name\": \"NavigationActionSection\", \"_Type\": \"Section.Type.ObjectTable\" } ], \"_Type\": \"Control.Type.SectionedTable\", \"_Name\": \"NavigationActionSectionTable\" } ] }",
"Type": "Action.Type.Navigation"
}
// Navigation.action (use PageMetadata object)
{
"PageToOpen": "/MDKApp/Pages/Dummy.page",
"PageMetadata": {
"Caption": "PageMetadata Test",
"_Type": "Page",
"_Name": "PageMetadataTest",
"Controls": [{
"Sections": [{
"Header": {
"Caption": "Actions"
},
"ObjectCells": [{
"ObjectCell": {
"AccessoryType": "disclosureIndicator",
"Description": "another pagemetadata",
"OnPress": "/MDKDevApp/Actions/Navigation/PageMetadata.action",
"Title": "Next Page"
}
}],
"_Name": "NavigationActionSection",
"_Type": "Section.Type.ObjectTable"
}],
"_Type": "Control.Type.SectionedTable",
"_Name": "NavigationActionSectionTable"
}]
},
"Type": "Action.Type.Navigation"
}
// Navigation.action (default transition)
{
"PageToOpen": "/MDKApp/Pages/ListPage.page",
"Type": "Action.Type.Navigation"
}
// Navigation.action (fade transition)
{
"PageToOpen": "/MDKApp/Pages/ListPage.page",
"Type": "Action.Type.Navigation",
"Transition": {
"Curve": "Linear",
"Duration": 2,
"Name": "Fade"
}
}
// Navigation.action (NO transition)
{
"PageToOpen": "/MDKApp/Pages/ListPage.page",
"Type": "Action.Type.Navigation",
"Transition": {
"Name": "None"
}
}
// Navigation.action (BackStackVisible false)
{
"PageToOpen": "/MDKApp/Pages/ListPage.page",
"Type": "Action.Type.Navigation",
"BackStackVisible": false
}