React Native中NavigatorIOS组件的简单使用详解


Posted in Javascript onJanuary 27, 2018

一、NavigatorIOS组件介绍

1,组件说明

使用 NavigatorIOS 我们可以实现应用的导航(路由)功能,即实现视图之间的切换和前进、后退。并且在页面上方会有个导航栏(可以隐藏)。

NavigatorIOS 组件本质上是对 UIKit navigation 的包装。使用 NavigatorIOS 进行路由切换,实际上就是调用 UIKit 的 navigation。

NavigatorIOS 组件只支持 iOS 系统。React Native 还提供了一个 iOS 和 Android 都通用导航组件:Navigator。这个以后再说。

2,组件的属性

(1)barTintColor:导航条的背景颜色
(2)initialRoute:用于初始化路由。其参数对象中的各个属性如下:

{
 component: function, //加载的视图组件
 title: string, //当前视图的标题
 passPros: object, //传递的数据
 backButtonIcon: Image.propTypes.source, // 后退按钮图标
 backButtonTitle: string, //后退按钮标题
 leftButtonIcon: Image.propTypes.soruce, // 左侧按钮图标
 leftButtonTitle: string, //左侧按钮标题
 onLeftButtonPress: function, //左侧按钮点击事件
 rightButtonIcon: Image.propTypes.soruce, // 右侧按钮图标
 rightButtonTitle: string, //右侧按钮标题
 onRightButtonPress: function, //右侧按钮点击事件
 wrapperStyle: [object Object] //包裹样式
}

(3)itemWrapperStyle:为每一项定制样式,比如设置每个页面的背景颜色。
(4)navigationBarHiddent:为 true 时隐藏导航栏。
(5)shadowHidden:为 true 时,隐藏阴影。
(6)tintColor:导航栏上按钮的颜色。
(7)titleTextColor:导航栏上字体的颜色。
(8)translucent:为 true 时,导航栏为半透明。

3,组件的方法

当组件视图切换的时候,navigator 会作为一个属性对象被传递。我们可以通过 this.props.navigator 获得 navigator 对象。该对象的主要方法如下:
(1)pust(route):加载一个新的页面(视图或者路由)并且路由到该页面。
(2)pop():返回到上一个页面。
(3)popN(n):一次性返回N个页面。当 N=1 时,相当于 pop() 方法的效果。
(4)replace(route):替换当前的路由。
(5)replacePrevious(route):替换前一个页面的视图并且回退过去。
(6)resetTo(route):取代最顶层的路由并且回退过去。
(7)popToTop():回到最上层视图。

二、使用样例

NavigatorIOS是React Native自带的导航组件,下面是它的简单应用。

初始化第一个场景

import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { NavigatorIOS, Text } from 'react-native';
import { NextScene } from 'react-native';

export default class NavigatorIOSApp extends Component {
 render() {
  return (
   <NavigatorIOS
    initialRoute={{
     component: MyScene,
     title: '初始化第一个场景',
    }}
    style={{flex: 1}}
   />
  );
 }
}

class MyScene extends Component {
 static propTypes = {
  title: PropTypes.string.isRequired,
  navigator: PropTypes.object.isRequired,
 }

 _onForward = () => {
  this.props.navigator.push({
   component:NextScene
   title: '第二个场景'
  });
 }

 render() {
  return (
   <View>
    <Text>Current Scene: { this.props.title }</Text>
    <TouchableHighlight onPress={this._onForward}>
     <Text>前往下一个场景</Text>
    </TouchableHighlight>
   </View>
  )
 }
}

第二个场景

export default class NextScene extends Component {

 render() {
  return (
   <View>
    <Text>这是第二个场景</Text>
   </View>
  )
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
Jul 20 Javascript
Javascript操作cookie的函数代码
Oct 03 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
Nov 22 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
解决jquery版本冲突的有效方法
Sep 02 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
Oct 21 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
微信小程序实现文字无限轮播效果
Dec 28 Javascript
解决layer图标icon不加载的问题
Sep 04 Javascript
js 根据对象数组中的属性进行排序实现代码
Sep 12 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 #Javascript
使用D3.js创建物流地图的示例代码
Jan 27 #Javascript
javascript获取图片的top N主色值方法详解
Jan 26 #Javascript
Vue中render方法的使用详解
Jan 26 #Javascript
Angular利用trackBy提升性能的方法
Jan 26 #Javascript
微信小程序版翻牌小游戏
Jan 26 #Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 #Javascript
You might like
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
货代行业个人求职简历的自我评价
2013/10/22 职场文书
应届护士推荐信
2013/11/16 职场文书
银行门卫岗位职责
2013/12/29 职场文书
导游实习生自荐书
2014/01/28 职场文书
运动会跳远广播稿
2014/02/04 职场文书
电力培训心得体会
2014/09/02 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
教师节慰问信
2015/02/15 职场文书
病假条格式范文
2015/08/17 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js