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 相关文章推荐
javascript 硬盘序列号+其它硬件信息
Dec 23 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
jQuery实现背景弹性滚动的导航效果
Jun 01 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
Aug 25 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
快速处理vue渲染前的显示问题
Mar 05 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
使用react render props实现倒计时的示例代码
Dec 06 Javascript
详解Node.js异步处理的各种写法
Jun 09 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 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
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
js验证表单第二部分
2006/11/25 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
利用aardio给python编写图形界面
2017/08/21 Python
浅谈Python处理PDF的方法
2017/11/10 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
opencv实现图像平移效果
2021/03/24 Python
设计部经理的岗位职责
2013/11/16 职场文书
读书心得体会
2013/12/28 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
小学二年级学生评语
2014/04/21 职场文书
竞选部长演讲稿
2014/04/26 职场文书
2014年母亲节寄语
2014/05/07 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js