def weak_view_controller
      if @_view_controller
        @_view_controller
      else
        if @context.is_a?(UIViewController)
          @context
        else # view
          vc = RMQ.controller_for_view(@context) ||
            (self.parent_rmq && self.parent_rmq.weak_view_controller) ||
            RMQ.app.current_view_controller

          #debug.assert(vc.is_a?(UIViewController), 'Invalid controller in weak_view_controller') do
            #{
              #vc: vc,
              #context: @context,
              #parent_rmq: self.parent_rmq,
              #current_view_controller: RMQ.app.current_view_controller
            #}
          #end

          self.view_controller = vc
          @context.rmq_data.view_controller = @_view_controller if @context

          @_view_controller
        end
      end
    end
def weak_view_controller
      if @_view_controller
        @_view_controller
      else
        if @context.is_a?(UIViewController)
          @context
        else # view
          vc = RMQ.controller_for_view(@context) ||
            (self.parent_rmq && self.parent_rmq.weak_view_controller) ||
            RMQ.app.current_view_controller

          #debug.assert(vc.is_a?(UIViewController), 'Invalid controller in weak_view_controller') do
            #{
              #vc: vc,
              #context: @context,
              #parent_rmq: self.parent_rmq,
              #current_view_controller: RMQ.app.current_view_controller
            #}
          #end

          self.view_controller = vc
          @context.rmq_data.view_controller = @_view_controller if @context

          @_view_controller
        end
      end
    end
Mostly used internally
 See #view_controller