To jest bardziej dogłębna nswer na podstawie this issue in React-Native
Na lewym pasku bocznym Xcode wybierz "Project Manger" (ikona folderu), aby zobaczyć strukturę pliku.
Szczególna folderu szukasz znajduje się pod adresem: [YourAppName]> Biblioteki> React.xcodeproj> React> Widoki
RCTNavItem.h
#import "RCTComponent.h"
@interface RCTNavItem : UIView
//add this line:
@property (nonatomic, assign) BOOL showTabBar;
RCTNavItemManager.m
@implementation RCTNavItemManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [RCTNavItem new];
}
// add this line:
RCT_EXPORT_VIEW_PROPERTY(showTabBar, BOOL)
RCTNavigator.m
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(__unused UIViewController *)viewController
animated:(__unused BOOL)animated
{
// Add these two lines:
RCTWrapperViewController *thisController = (RCTWrapperViewController *)viewController;
navigationController.tabBarController.tabBar.hidden = !thisController.navItem.showTabBar;
Nie trzeba dodawać propTypes do NavigatorIOS.ios.js lub TabBarIOS.ios.js
Aby to wszystko działa, każda zakładka pozornie musi mieć swój własny składnik NavigatorIOS.Kiedy miałem kartę po prostu przedstawiam ekran - metoda nawigacji navigation controller: (UINavigationController *) nie jest wywoływana. Nie stanowiło to dla mnie problemu, ponieważ ukrycie navBar można łatwo zrobić za pomocą navigationBarHidden: true.
W moim przypadku miałem TabNav> HomeNav> Homescreen
Podania showTabBar prop w HomeNav:
render() {
return (
<NavigatorIOS
style={styles.container}
client={this.props.client}
initialRoute={{
title: 'Home',
component: HomeScreen,
navigationBarHidden: true,
showTabBar: false,
passProps: { ...},
}}/>
);
}
}
Mam nadzieję, że ktoś pomoże!
https://stackoverflow.com/questions/30266831/hide-show-components-in-react-native to sprawdzić. – ogelacinyc