NATIVESCRIPT - Core (JS) - Переключение между TabView и пустой страницей - PullRequest
0 голосов
/ 18 марта 2019

Я работаю над приложением, основанным на TabViews. Но если пользователь не вошел в систему, я хочу показать экран входа в систему при запуске приложения, соответственно экран входа в систему после выхода из системы. Экран входа в систему не должен быть в рамке TabView.

TabView установлен в app-root.xml .

<TabView loaded="onLoadedTabView" id="tabView" androidTabsPosition="bottom">
    <TabViewItem title="Home">
        <Frame defaultPage="home/home-page"></Frame>
    </TabViewItem>

    <TabViewItem title="Second">
        <Frame defaultPage="second/second-page"></Frame>
    </TabViewItem>

    <TabViewItem title="Third">
        <Frame defaultPage="third/third-page"></Frame>
    </TabViewItem>
</TabView>

У меня есть login-root.xml для загрузки страницы входа

<Frame defaultPage="login/login-page"></Frame>

В app.js я хочу решить, будет ли сначала запускаться "app-root" или "login-root".

const appSettings = require("application-settings");
let application = require("tns-core-modules/application");


if (typeof appSettings.getString('username') === 'undefined') {
    application.run({ moduleName: "login-root" });
} else {
    application.run({ moduleName: "app-root" });
}

Если я сейчас сначала загружу LOGIN , я запускаю TabView с application.run ({moduleName: "app-root"}); снова. Я думаю, это не лучший способ.

Как я могу загрузить и отобразить TabView?

У меня есть приложение NS-PLAYGROUND , где вы, надеюсь, сможете мне помочь. Я действительно ценю решение:

https://play.nativescript.org/?template=play-js&id=fk1uUx

Большое спасибо !!!

С уважением, Тобиас

1 Ответ

0 голосов
/ 19 марта 2019

Вы можете просто позвонить application._resetRootView(...), чтобы заменить ваше корневое представление на TabView или вернуться к кадру входа в систему, если необходимо.

Образец игровой площадки

Еще один вариант - создать новыйстраница, включающая TabView и загружающая страницу в рамку входа.

...