React-Native+原生UITabBarController+原生UINavigationContrller的跳转和RN与IOS原生的交互等一系列看似很牛逼的解决方案

为什么我想用原生UITabBarController加RN来开发APP呢?

1.考虑到以后可能会涉及到IM功能,目前对于创业公司来说,IM大多使用第三方IM平台开发,许多第三方框架都会有直接UI集成,所以这里用原生tabbar做一个控制跳转.(当然RN也可以封装原生的View)

2.对于性能要求比较大,图片比较多的界面,比如朋友圈界面等,个人觉得使用原生要更加有效率一些.因为RN中Image组件没有做图片缓存,没有我们习惯的站位图,还是使用SDWebImage更加开心一点.

3.对于初入RN的童鞋们,怕被入坑后无法自拔,那就使用我这套解决方案吧,让你快速入坑快速出坑

为什么我们要使用嵌套UINavigationContrller?

因为我们从RN跳原生这样啦

这里是牛逼的分割线,进入正题

1.首先我们先初始化一个RN项目

2.根据你有几个模块创建几个入口文件(index.ios.js)如图:


我这里就是直接复制粘贴<index.ios.js>文件,然后修改一下名字

3.配置pod(如果不想使用pod可以忽略)

4.下面开始在项目中添加storyboard(喜欢用纯代码的也可以使用纯代码)


storyboard结构

4.1.创建好storyboard我们要注意入口文件的修改,选中你的入口控制器


设置入口控制器

4.2.配置项目的Main Interface,选择刚刚创建的storyboard

设置入口

4.3.AppDelegate的didFinishLaunchingWithOptions方法中return YES;


5.设置不同模块的不同的RN入口js

5.1调用RN代码

注册

5.2注册RCTBridgeDelegate,并且调用sourceURLForBridge方法


设置入口JS

以此类推,设置完其他的RN模块之后,我们便可跑起来我们的项目

*其他东西:

RN与原生的交互与相互传参

请查看我的上篇文章,讲解了最基本的交互,现在讲的是带返回参数的方法

1.JS中写法


2.IOS原生中写法

2.1保存block


2.2使用block


注:会node.js的小伙伴应该很容易看懂这段代码。我看了其他第三方框架的RN代码,好像ios通知也可以做原生与RN的交互,大家有兴趣可以去研究研究。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,511评论 25 708
  • 导语 React Native是一套由 Facebook 开源的跨平台、动态更新的 Javascript 框架,其...
    滴嗒嗒阅读 9,209评论 5 36
  • 信 日月鬼斗 再坏 也不要坏生你的人 再穷 不要去坑害养你的人 再难 不要说话不算数 再...
    日月鬼斗阅读 260评论 0 1
  • 给老妈打电话了,告诉她我今年不回家过年,公司一放假就35个钟去兰州支教一个月只回来过元宵的事儿。告诉她兰州那里什么...
    沈十七阅读 234评论 0 0