Ionic2的NavController

NavController作为导航控制器组件的基础类,用于管理页面跳转。它通过维护一个页面数组实现历史记录,并使用栈顶元素代表当前页面。开发者可通过注入NavController控制导航流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NavController是导航控制器组件(如Nav/Tab)的基础类class,在你的app中你使用导航控制器跳转到某个页面。在基础层面上看,一个导航控制器就是一个页面数组,其代表着一个特殊历史记录,这个数组通过在历史记录中进行增删实现页面跳转。

你可以认为当前页面是数组中最后一个元素,或者说是栈的的顶部。在导航栈的顶部塞入一个新页面就会触发一个新页面的动画加载。当然如果删除当前页面就在这个栈中暴露出上一个页面。

除非你正在使用一个指令比如NavPush,或者需要一个定义好的NavController,大多数情况,你都是注入以及使用一个参数到最近的NavController中来控制我们的导航栈。

基础应用

最简单的使用方法就是使用<ion-nav>这个组件创建和初始化一个新的nav controller。ion-nav 扩展NavController类。

import { Component } from `@angular/core`;
import { StartPage } from './start-page';

@Component(
  template: `<ion-nav [root]="rootPage"></ion-nav>`
})
class MyApp {
  // set the rootPage to the first page we want displayed
  public rootPage: any = StartPage;

  constructor(){
  }
}

从Root component里导航

如果你希望从你的root app component里控制导航该怎么办?你是不可以直接注入NavController因为任何component都是navigation controllers,都是root component的子组件。

我们可以往ion-nav标签里添加参数变量,你可以使用@ViewChild获取Nav component的一个实例。这个实例就是一个导航控制器:

import { Component, ViewChild } from '@angular/core';
import { NavController } from 'ionic-angular';

@Component({
   template: '<ion-nav #myNav [root]="rootPage"></ion-nav>'
})
export class MyApp {
   @ViewChild('myNav') nav: NavController
   public rootPage = TabsPage;

   // Wait for the components in MyApp's template to be initialized
   // In this case, we are waiting for the Nav with reference variable of "#myNav"
   ngOnInit() {
      // Let's navigate from TabsPage to Page1
      this.nav.push(Page1);
   }
}

从一个Overlay Component 中进行导航

比如弹出框,悬浮框这些。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值