Skip to content

Instantly share code, notes, and snippets.

@doublerebel
Created September 26, 2012 21:19
Show Gist options
  • Save doublerebel/3790649 to your computer and use it in GitHub Desktop.
Save doublerebel/3790649 to your computer and use it in GitHub Desktop.
Example of Swipe Navigation with Tiger on Titanium Mobile
Tiger = require '/lib/tiger'
Route = require '/lib/tiger.route'
class BaseView extends Tiger.Window
close: ->
direction = Tiger.Route.direction
left = if direction is 'prev' then '-100%' else '100%'
@animate {left: left, duration: 400}, @element.close
open: ->
direction = Tiger.Route.direction
left = if direction is 'prev' then '100%' else '-100%'
@set {left: left}
super
@animate {left: 0, duration: 400}
class GraphPageOneView extends BaseView
...
class BaseController extends Tiger.Controller
navigate: ->
super
@view.close()
prev: ->
Tiger.Route.direction = 'prev'
@navigate @prevPage
next: ->
Tiger.Route.direction = 'next'
@navigate @nextPage
swipeNavigate: (e) ->
switch e.direction
when 'left' then @next()
when 'right' then @prev()
constructor: ->
@view = new @View()
@view.swipe @swipeNavigate
super
@render()
render: ->
@view.open()
class GraphPageOne extends BaseController
prevPage: '/graph/zero'
nextPage: '/graph/two'
constructor: ->
@View = require '/views/GraphPageOneView'
super
class App extends Tiger.Controller
constructor: ->
@routes
'/graph/zero': ->
@GraphPageZero or= require '/views/graph-zero'
@CurrentPage = new @GraphPageZero()
'/graph/one': ->
@GraphPageOne or= require '/views/graph-one'
@CurrentPage = new @GraphPageOne()
Tiger.Route.setup()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment