So blenden Sie Reagieren Nativen NavigationBar

Habe ich NavigatorIOS unter Navigator und würde gerne verbergen Navigator NavigationBar verwenden NavigatorIOS ' s bar. Gibt es eine Möglichkeit, dies zu tun?

Dies ist Abbildungdie ich gesehen habe. Ich brauche backend NavigatorIOS..

Die Struktur, die ich bauen will ist die folgende:

├── NavigatorRoute1
   ├── NavigatorIOSRoute1
   ├── NavigatorIOSRoute2
   └── NavigatorIOSRoute3
└── NavigatorRoute2

Den code, den ich habe, ist die unten. (Im Grunde erhalten Sie von UIExplore Beispiele.

Navigator

render: function(){
return (
  <Navigator
    initialRoute={ROUTE_STACK[this.getInitialRouteIndex()]}
    initialRouteStack={ROUTE_STACK}
    style={styles.container}
    renderScene={this.renderScene}
    navigationBar={
      <Navigator.NavigationBar
        routeMapper={NavigationBarRouteMapper}
        style={styles.navBar}
      />
    }
  />
);
}

NavigatorIOS

render: function(){
var nav = this.props.navigator;
 return (
  <NavigatorIOS
    style={styles.container}
    ref="nav"
    initialRoute={{
      component: UserSetting,
      rightButtonTitle: 'Done',
      title: 'My View Title',
      passProps: {nav: nav},
    }}
    tintColor="#FFFFFF"
    barTintColor="#183E63"
    titleTextColor="#FFFFFF"
  />
);

}

UPDATE mit meiner Lösung

Habe ich noch eine Funktion zum ändern des Status, die mit dem Rendern der Navigator, und übergeben Sie die Requisiten auf die Komponente, um den Status zu ändern.

hideNavBar: function(){
  this.setState({hideNavBar: true});
},
render: function(){
 if ( this.state.hideNavBar === true ) {
  return (
    <Navigator
      initialRoute={ROUTE_STACK[0]}
      initialRouteStack={ROUTE_STACK}
      renderScene={this.renderScene}
    />
  );
 }else{
  return (
    <Navigator
      initialRoute={ROUTE_STACK[this.getInitialRouteIndex()]}
      initialRouteStack={ROUTE_STACK}
      style={styles.container}
      renderScene={this.renderScene}
      navigationBar={
        <Navigator.NavigationBar
          routeMapper={NavigationBarRouteMapper}
          style={styles.navBar}
        />
      }
    />
  );
}

}

und

render: function(){
 var hideNavBar = this.props.hideNavBar;
 return (
  <NavigatorIOS
    style={styles.container}
    initialRoute={{
      component: UserSetting,
      rightButtonTitle: 'Done',
      title: 'My View Title',
      passProps: {hideNavBar: hideNavBar},
    }}
    tintColor="#FFFFFF"
    barTintColor="#183E63"
    titleTextColor="#FFFFFF"
  />
 );

}

InformationsquelleAutor der Frage shohey1226 | 2015-05-12

Schreibe einen Kommentar