'use strict'; var React = require('react'); var ReactNative = require('react-native'); var { AppRegistry, StyleSheet, Text, View, Image, ScrollView, TouchableOpacity, AlertIOS, NativeAppEventEmitter } = ReactNative; var Controllers = require('react-native-controllers'); var FavoritesScreen = React.createClass({ getInitialState: function() { return({ isNavBarHidden : false }); }, render: function() { return ( Styling Example There are a lot of styling options supported, scroll down to see them all in action. The images are here to help visualize colorful content with these styles. { this.props.hidePop ? false : Pop } Push Plain Screen NavBar Colors Draw Under NavBar & TabBar Blur StatusBar (& hide NavBar) Blur Entire NavBar (& draw under it) Transparent Nav Bar Toggle Nav Bar Hidden Custom Toolbar in Nav Bar More styles under the image Draw Under NavBar Only Draw Under TabBar Only NavBar Hidden On Push NavBar Not Hidden StatusBar Hidden Light StatusBar Dark StatusBar NavBar & StatusBar Hidden NavBar Hide On Scroll NavBar & StatusBar Hide On Scroll TabBar Hidden TabBar Not Hidden Empty Back Button Text Custom Back Button Text Hidden Back Button Right NavBar Text Buttons Right NavBar Text Buttons Disabled Right NavBar Icon Buttons Event Based NavBar Buttons Push With Title Image Set Title Set Image Title Set Title With Subtitle Set Subtitle Set Style Title & Subtitle ); }, onPopClick: function() { Controllers.NavigationControllerIOS("favorites_nav").pop(); }, onButtonClick: function(cmd) { switch (cmd) { case 'plain': require('./PushedScreen'); // help the react bundler understand we want this file included Controllers.NavigationControllerIOS("favorites_nav").push({ title: "Pushed screen", component: "PushedScreen", animated: true }); break; case 'navtransparent': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarTransparent: true, drawUnderNavBar: true, navBarTranslucent: true } }); break; case 'navcolors': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarBackgroundColor: '#ffc0c0', navBarButtonColor: '#00a000', navBarTextColor: '#ffff00' } }); break; case 'navhidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarHidden: true } }); break; case 'sethidden': this.state.isNavBarHidden = !this.state.isNavBarHidden; Controllers.NavigationControllerIOS("favorites_nav").setHidden( { hidden: this.state.isNavBarHidden, animated: true //default is true }); break; case 'statushidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { statusBarHidden: true } }); break; case 'toolbarnavigation': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "Extra", component: "ExtraScreen", style: { drawUnderNavBar: true, navBarTranslucent: true, navBarNoBorder: true }, rightButtons: [ { icon: require('./img/star.png'), disableIconTint: true, onPress: function() { AlertIOS.alert('Button', 'You Are My Star'); } } ] }); break; case 'lightstatus': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { statusBarTextColorScheme: 'light' } }); break; case 'darkstatus': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { statusBarTextColorScheme: 'dark' } }); break; case 'navstatushidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarHidden: true, statusBarHideWithNavBar: true } }); break; case 'navnothidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarHidden: false } }); break; case 'navscrollhidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarHideOnScroll: true } }); break; case 'navstatusscrollhidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarHideOnScroll: true, statusBarHideWithNavBar: true } }); break; case 'tabhidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { tabBarHidden: true } }); break; case 'tabnothidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { tabBarHidden: false } }); break; case 'undernav': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { drawUnderNavBar: true, navBarTranslucent: true, drawUnderTabBar: false } }); break; case 'undertab': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { drawUnderNavBar: false, drawUnderTabBar: true } }); break; case 'underboth': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { drawUnderNavBar: true, navBarTranslucent: true, drawUnderTabBar: true } }); break; case 'blurstatus': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { statusBarBlur: true, navBarHidden: true } }); break; case 'blurnav': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", style: { navBarBlur: true, drawUnderNavBar: true, navBarTransparent: false } }); break; case 'backnotext': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", backButtonTitle: "" }); break; case 'backcustomtext': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", backButtonTitle: "Hello" }); break; case 'backhidden': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", backButtonHidden: true }); break; case 'rightbuttons': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", rightButtons: [ { title: "Edit", onPress: function() { AlertIOS.alert('Button', 'Edit pressed'); } }, { title: "Save", onPress: function() { AlertIOS.alert('Button', 'Save pressed'); } } ] }); break; case 'rightbuttonsdisabled': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", rightButtons: [ { title: "Edit", disabled: true }, { title: "Save", onPress: function() { AlertIOS.alert('Button', 'Save pressed'); } } ] }); break; case 'righticonbuttons': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", rightButtons: [ { icon: require('./img/navicon_edit.png'), onPress: function() { AlertIOS.alert('Button', 'Edit pressed'); } }, { icon: require('./img/navicon_add.png'), onPress: function() { AlertIOS.alert('Button', 'Add pressed'); }, testID: "e2erules" } ] }); break; case 'eventbuttons': const eventId = 'MY_UNIQUE_EVENT_ID'; NativeAppEventEmitter.addListener(eventId, function (event) { switch (event.id) { case 'edit': AlertIOS.alert('Button', 'Edit pressed'); break; case 'add': AlertIOS.alert('Button', 'Add pressed'); break; } }); Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", component: "FavoritesScreen", rightButtons: [ { icon: require('./img/navicon_edit.png'), id: 'edit', onPress: eventId }, { icon: require('./img/navicon_add.png'), id: 'add', onPress: eventId } ] }); break; case 'titleImage': Controllers.NavigationControllerIOS("favorites_nav").push({ title: "More", titleImage: require('./img/turtle.png'), component: "FavoritesScreen" }); break; case 'setTitleImage': Controllers.NavigationControllerIOS("favorites_nav").setTitle({ title: "Favorites", titleImage: require('./img/turtle.png'), component: "FavoritesScreen" }); break; case 'setTitle': Controllers.NavigationControllerIOS("favorites_nav").setTitle({ title: "Favorites", component: "FavoritesScreen" }); break; case 'setTitleAndSubtitle': Controllers.NavigationControllerIOS("favorites_nav").setTitle({ title: "Favorites", subtitle: "Subtitle", component: "FavoritesScreen" }); break; case 'setSubtitle': Controllers.NavigationControllerIOS("favorites_nav").setTitle({ subtitle: "Subtitle", component: "FavoritesScreen" }); break; case 'setStyleTitleAndSubtitle': Controllers.NavigationControllerIOS("favorites_nav").setTitle({ title: "Favorites", subtitle: "Subtitle", component: "FavoritesScreen", style: { navBarTitleFontSize: 20, navBarSubtitleFontSize: 15, navBarSubtitleTextColor: '#00ff00', navBarTextColor: '#0000ff' } }); break;setStyleTitleAndSubtitle } }, }); var styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#F5FCFF' }, button: { textAlign: 'center', fontSize: 18, marginBottom: 10, marginTop:10, color: 'blue' } }); AppRegistry.registerComponent('FavoritesScreen', () => FavoritesScreen); module.exports = FavoritesScreen;