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 相关文章推荐
jQuery实现当前页面标签高亮显示的方法
Mar 10 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
Dec 08 Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 Javascript
vue.js中指令Directives详解
Mar 20 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
深入浅析javascript继承体系
Oct 23 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 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循环输出数据库内容的代码
2008/05/24 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python 系统调用的实例详解
2017/07/11 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
开展批评与自我批评发言材料
2014/05/15 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python