                 alertController.addAction(cancelAction)
             }
 
-            presenterViewController.presentViewController(alertController, animated: true, completion: nil)
+            if let presenterViewController = presenterViewController{
+                presenterViewController.presentViewController(alertController, animated: true, completion: nil)
+            }else if let presenterViewController = Helper.topViewController(){
+                presenterViewController.presentViewController(alertController, animated: true, completion: nil)
+            }else{
+                print("não existe controllers para apresentar o alert")
+            }
 
             return AnonymousDisposable {
                 alertController.dismissViewControllerAnimated(true, completion: nil)

            })
            alertController.addAction(cancelAction)

            presenterViewController.presentViewController(alertController, animated: true, completion: nil)

            return AnonymousDisposable {
                alertController.dismissViewControllerAnimated(true, completion: nil)

     - parameter presenterViewController: The controller which is going to present the error alert.
     - retuns: Observable AlertManagerOption
     */
    public func error(errorType: ErrorType, preferredStyle: UIAlertControllerStyle = .Alert, presenterViewController: UIViewController? = nil) -> Observable<AlertManagerOption> {
        return Observable.create({ (observer) -> Disposable in
            let error = translateMoyaError(errorType)

