Frame

To perform navigation, you will need a reference to the topmost frame of the application.

import { topmost, NavigationEntry } from "tns-core-modules/ui/frame";
const frame = topmost();
frame.navigate("details-page");
const func = function () {
    const label = new Label();
    label.text = "Hello, world!";
    const page = new Page();
    page.content = label;
    return page;
};
const frame = topmost();
frame.navigate(func);
const navigationEntry = {
    moduleName: "details-page",
    context: { info: "something you want to pass to your page" },
    animated: false
};
const frame = topmost();
frame.navigate(navigationEntry);
const frame = topmost();
frame.goBack();

Back Navigation with BackstackEntry

Using the BackstackEntry allows us to navigate back to a specific page.

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" class="page">

    <Page.actionBar>
        <ActionBar title="Page 5" icon="" class="action-bar">
        </ActionBar>
    </Page.actionBar>

    <StackLayout class="p-20">
        <Label text="Page 5" class="h1 text-center"/>
        <Button text="back to the first page" tap="onTap" class="btn btn-primary btn-active"/>
    </StackLayout>
</Page>
import {BackstackEntry, Frame} from "ui/frame"

export function backNavigation(args){
    const backstackEntryFirstPage = args.object.page.frame.backStack[0];
    const frame = args.object.page.frame;
    frame.goBack(backstackEntryFirstPage);
}

With the help of the Frame we access the page's BackstackEntry by providing the the sequence number - backStack[<page number>]. In the example above we will navigate back to the initial page and to do that we need to take the first BackstackEntry as follow: topmost().backStack[0]

NB: We start counting the pages from 0. If we need to take the entry for the first page we need to take the it while using the 0 index, for the second 1 index, etc.

Is this article helpful? Yes / No
Thank you for your feedback!

Tell us how we can improve this article

NativeScript
NativeScript is licensed under the Apache 2.0 license .
© Progress Software Corporation. All Rights Reserved.