     return view if view = Batman._data(node, 'view')
     node = node.parentNode
 
-Batman.container.$subviews ?= (view) ->
+Batman.container.$subviews ?= (view = Batman.currentApp.layout) ->
   subviews = {}
 
   view.subviews.forEach (key, subview) ->

    if isInDOM
      subview.fire('viewDidAppear')
    else
      @on 'viewWillAppear', subview._fireViewWillAppear ||= -> subview.fire('viewWillAppear')
      @on 'viewDidAppear', subview._fireViewDidAppear ||= -> subview.fire('viewDidAppear')

  _removeFromSuperview: ->
    @fire('viewWillRemoveFromSuperview')

    superview = @get('superview')
    superview.off('viewWillAppear', subview._fireViewWillAppear)
    superview.off('viewDidAppear', subview._fireViewDidAppear)

    isInDOM = @get('isInDOM')
    @fire('viewWillDisappear') if isInDOM

    subview.set('superview', this)
    subview.fire('viewDidMoveToSuperview')

    @prevent('childViewsReady')
    subview.once('ready', @_fireChildViewsReady ||= => @allowAndFire('childViewsReady'))

    isInDOM = @get('isInDOM')
    subview.fire('viewWillAppear') if isInDOM

