402v /posts/react-nativeru-men-shi-li-jiao-cheng-iosdao-hang-zhuan-ti

React Native入门实例教程 - iOS导航专题

最近一段时间在学习和实践React Native,做一些有趣有用总结和大家分享。这个系列文章可以在这里找到。

使用iOS NavigationBar

当React Native用于已存在的大型项目中时,导航控制器的实现就成了一个比较大的问题:

  1. React Native视图的Navigator,导航效果与native不同,而且会和iOS的右划返回手势冲突;<!--不知道有没有解决方案-->
  2. React Native视图的NavigatorIOS是重新生成一个导航控制器,与主导航间UI不容易统一,行为也不容易统一;
  3. 承载React Native视图的VC在React Native中无法接触到,进而无法退场<!--尝试用native modules解决-->

解决的尝试方案如下:

  1. 将容器VC改成native modules;
    • 问题1,改为native modules之后OC代码如下:
#pragma mark - React Native

RCT_EXPORT_MODULE()

RCT_EXPORT_METHOD(backButtonClicked:(id)sender)
{
    NSLog(@"RCT back action.");
    [self.navigationController popViewControllerAnimated:YES];
}

JS调用代码如下:

// call native method
    var BBASkinCenterViewController = require('react-native').NativeModules.BBASkinCenterViewController;
    BBASkinCenterViewController.backButtonClicked(null);

方法确实被调用了但是问题也很明显,这个实例是新创建的,并不是我们想要的那个实例。

  1. 自定义NatigatorIOS样式;

  2. navigator module桥接:

#Where to go

React Native入门实例教程 - 调试系统

评论 · 0

还没有评论。