iOS中RCTModalHostViewController的切换

一、前言

  • 2021.7.27--更新:文章内容适合Native为主RN为辅的情况

  • 以下为原文

  • 最近在写RN的项目,遇到一个模态弹出来的控制器需要Push切换的问题,解决问题后,这篇文章就做个记录

  • 描述:一个用RN写的地址列表,用原生控制器加载出来了,是从TabBar控制器Push进来的,如下图:

1599192503499.jpg
  • 问题:点击地址列表的cell后会模态弹出RCTModalHostViewController控制器,然后点击底部Item后,需要Push出去处理,如下图:
1599191595691.jpg
  • 问题分析:RCTModalHostViewController是通过模态方式弹出的,点击底部Item是没法直接进行Push的,试了很多种方法,最后找到一种比较好的方式

  • 问题解决:
    先取windows的根控制器(RootVC),再将根控制器转成tabBarVC,再去取tabBarVC的selectedViewController,再将selectedViewController转成导航栏控制器,再通过导航栏控制器再进行push就可以了,如下图

Sep-04-2020 12-28-25.gif
  • Swift代码:
let navigationVC = (UIApplication.shared.keyWindow?.rootViewController as! UITabBarController).selectedViewController as! UINavigationController
navigationVC.pushViewController(RNVC, animated: false)

你可能感兴趣的:(iOS中RCTModalHostViewController的切换)