ReactNative跳转到iOS原生界面

本文介绍了一种React Native应用跳转至iOS原生页面的具体实现方法,通过创建Module类并在AppDelegate中设置UINavigationController来实现页面跳转。

最近项目需要React Native 和原生的交互,当需要用到跳转的时候,官方文档写的也是云里雾里,网上的博客也是你吵我我抄你,乱糟糟一片.最终关于RN跳转原生自己使用的方法,亲证有效.具体原理好好看一下就能理解,直接贴代码了


1.首先在原生项目创建一个Module类,

.m文件中将这个module导出,并将给rn调用的方法导出,这块详细的自行查阅rn和原生的通信吧,还是比较简单的

@interface SmartConfigModule()

@end

@implementation RCTConvert (AKPWifiConfigureProgress)
@end


@implementation SmartConfigModule
RCT_EXPORT_MODULE();

//model,dms,sens
RCT_EXPORT_METHOD(startWifiConfig:(NSString *)model dms:(NSString *)dms sens:(NSString *)sens) {

}

model,dms,sens是rn传给原生的参数,可以不加


2.在AppDelegate类中给rootViewController包上一层UINavigationController

3.在第一步的RCT_EXPORT_METHOD 方法里添加

if([[UIApplication sharedApplication].keyWindow.rootViewController isKindOfClass:[UINavigationController class]]) {
      UINavigationController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
      
      AddDeviceViewController *addDeviceVC = [[AddDeviceViewController alloc]init];
      addDeviceVC.model = model;
      addDeviceVC.dms = dms;
      addDeviceVC.sens = sens;
      [vc pushViewController:addDeviceVC animated:YES];
    }else {
      UINavigationController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
      AddDeviceViewController *addDeviceVC = [[AddDeviceViewController alloc]init];
      addDeviceVC.model = model;
      addDeviceVC.dms = dms;
      addDeviceVC.sens = sens;
      [vc presentViewController:addDeviceVC animated:YES completion:nil];
    }

到此完成rn跳转iOS原生.有问题欢迎提问.





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值