1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > ionic3 登录返回实现案例(解决tabs底栏在返回后显示的问题)

ionic3 登录返回实现案例(解决tabs底栏在返回后显示的问题)

时间:2023-01-14 18:50:19

相关推荐

ionic3 登录返回实现案例(解决tabs底栏在返回后显示的问题)

在制作登录、注销功能时,很容易出现tabs底栏在注销后仍然显示的问题,查阅很多资料,但是很多信息都是支离破碎的,虽然有人解决了这个问题,但是由于描述不清,大量有用的信息被隐藏在解决办法的背后。

经过整理,以及本人亲测成功,将要点整理如下:

如果您在看完之后尚未理解,可以见示例部分完整代码:/download/colourfultiger/10719936

接下来看例子吧!

1、页面效果

登录并进入到退出页面

点击退出后返回

可以看到这里在返回之后,底部没有tabs栏了。

2、核心代码部分

login页和logout页都是单独的组件,最重要的是在跳转使用的方式。

(1)方式一:使用

import {App} from 'ionic-angular';

【重点】login.ts使用如下方法,在登录成功时跳转页面至TabsPage中

this.navCtrl.push(TabsPage,data);

logout.ts中这样布置关键参数

import { App} from 'ionic-angular';//添加这一项constructor(private app :App) {}//关键语句this.app.getRootNav().setRoot(Login1Page);

【解析】因为页面是按堆栈的方式逐步放置在页面的顶端,使用push,间接的默认初始页面login是最栈底,那自然作为app的根导航了。

【优点】返回到栈底后没有了tabs一栏,有效的隐藏了相关信息。

【缺点】该方法即将被取消

替换的方法:

在logout.ts文件中,声明一个私有全局变量

export class MyselfPage {private test;

在用到的地方换成以下代码

this.test = this.app.getRootNavById('n4');this.test.setRoot(Login1Page)

(2)方式二

两个文件同时使用ModalController的方式

import {ModalController} from 'ionic-angular';

login.ts文件中这样使用

let modal = this.modalCtrl.create(TabsPage, data);modal.present();

logout.ts文件使用这种方法

let modal = this.modalCtrl.create(Login1Page);modal.present();

不同之处就在于根发生了改变,create内容变了

【解析】使用ModalController相当于另起一个栈底,然后重新建立页面内容;同时也没有Tabs栏的影响。

【缺点】暂未研究

两种方法比较:

方式一:

方式二:能够查看到一些信息

如果您在看完之后尚未理解,可以见示例部分完整代码:/download/colourfultiger/10719936

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。