1
1
/**
2
2
* IOS 入口文件
3
3
*/
4
- 'use strict' ;
4
+ 'use strict' ;
5
+ var React = require ( 'react-native' ) ;
6
+ var MainTabBar = require ( './MainTabBar.react' ) ;
7
+ var StoryList = require ( './views/StoryList.react' ) ;
8
+ var StoryDetail = require ( './views/StoryDetail.react' ) ;
9
+ var {
10
+ AppRegistry,
11
+ Navigator,
12
+ StyleSheet,
13
+ Text,
14
+ View,
15
+ Image,
16
+ StatusBarIOS,
17
+ TouchableOpacity,
18
+ } = React ;
5
19
6
- var React = require ( 'react-native' ) ;
7
- var { AppRegistry, Navigator, StyleSheet, View } = React ;
8
- var StoryList = require ( './views/StoryList.react' ) ;
9
- var StoryDetail = require ( './views/StoryDetail.react' ) ;
20
+ //StatusBarIOS.setStyle('light-content');
10
21
11
- var RouteMapper = function ( route , navigationOperations , onComponentRef ) {
12
- switch ( route . name ) {
13
- case 'storyList' :
14
- return (
15
- < StoryList navigator = { navigationOperations } />
16
- ) ;
17
- case 'storyDetail' :
18
- return (
19
- < StoryDetail navigator = { navigationOperations } detailId = { route . detailId } />
20
- ) ;
21
- }
22
- } ;
22
+ var NavigationBarRouteMapper = {
23
+ LeftButton : function ( route , navigator , index , navState ) {
24
+ if ( index === 0 ) {
25
+ return null ;
26
+ }
27
+ return (
28
+ < TouchableOpacity
29
+ onPress = { ( ) => navigator . pop ( ) }
30
+ style = { styles . navBarLeftButton } >
31
+ < Image
32
+ source = { require ( './images/icon-back.imageset/icon-back.png' ) }
33
+ style = { styles . navBarLeftIcon } />
34
+ </ TouchableOpacity >
35
+ ) ;
36
+ } ,
37
+ RightButton : function ( route , navigator , index , navState ) {
38
+ return (
39
+ < View style = { styles . rightBtnView } > </ View >
40
+ ) ;
41
+ } ,
42
+ Title : function ( route , navigator , index , navState ) {
43
+ if ( ! route . title ) {
44
+ return (
45
+ < Text style = { [ styles . navBarText ] } >
46
+ 我的WebApp
47
+ </ Text >
48
+ )
49
+ }
50
+ return (
51
+ < Text style = { [ styles . navBarText ] } >
52
+ { route . title . length > 16 ? route . title . substring ( 0 , 16 ) + '...' : route . title }
53
+ </ Text >
54
+ ) ;
55
+ } ,
56
+ } ;
57
+ var RouteMapper = function ( route , navigator ) {
58
+ switch ( route . name ) {
59
+ case 'storyList' :
60
+ return (
61
+ < StoryList navigator = { navigator } />
62
+ ) ;
63
+ case 'storyDetail' :
64
+ return (
65
+ < StoryDetail
66
+ navigator = { navigator }
67
+ detailId = { route . detailId } />
68
+ ) ;
69
+ default :
70
+ return (
71
+ < MainTabBar navigator = { navigator } />
72
+ ) ;
73
+ }
74
+ } ;
23
75
24
- var ReactNativeWeb = React . createClass ( {
25
- render : function ( ) {
26
- var initialRoute = { name : 'storyList' } ;
27
- return (
28
- < Navigator
29
- style = { styles . container }
30
- initialRoute = { initialRoute }
31
- renderScene = { RouteMapper }
32
- />
33
- ) ;
34
- }
35
- } ) ;
76
+ var ReactNativeWeb = React . createClass ( {
77
+ render : function ( ) {
78
+ var initialRoute = { name : 'MainTabBar' } ;
79
+ return (
80
+ < Navigator
81
+ style = { styles . container }
82
+ initialRoute = { initialRoute }
83
+ renderScene = { RouteMapper }
84
+ navigationBar = {
85
+ < Navigator . NavigationBar
86
+ routeMapper = { NavigationBarRouteMapper }
87
+ style = { styles . navBar }
88
+ />
89
+ }
90
+ />
91
+ ) ;
92
+ }
93
+ } ) ;
36
94
37
- var styles = StyleSheet . create ( {
38
- container : {
39
- flex : 1 ,
40
- backgroundColor : 'white' ,
41
- } ,
42
- } ) ;
95
+ var styles = StyleSheet . create ( {
96
+ container : {
97
+ backgroundColor :'#333' ,
98
+ //height: 44,
99
+ paddingTop : 20 ,
100
+ } ,
101
+ navBar : {
102
+ backgroundColor : '#333' ,
103
+ height : 44 ,
104
+ } ,
105
+ navBarText : {
106
+ fontSize : 14 ,
107
+ color : '#fff' ,
108
+ } ,
109
+ navBarLeftButton : {
110
+ paddingLeft : 10 ,
111
+ } ,
112
+ navBarLeftIcon :{
113
+ height :22 ,
114
+ } ,
115
+ rightBtnView :{
116
+ } ,
117
+ } ) ;
43
118
44
- AppRegistry . registerComponent ( 'ReactNativeWeb' , ( ) => ReactNativeWeb ) ;
119
+
120
+ AppRegistry . registerComponent ( 'ReactNativeWeb' , ( ) => ReactNativeWeb ) ;
0 commit comments