2016-12-27 17 views
0

2つの機能を作成しようとしています。 1つはprogressHUDを開始し、もう1つはhudを停止します。私はUIViewControllerの内線でこれを作成しています。機能は以下の通りです:MBProgressHUDの開始機能と停止機能を作成する

func startProgressHUD() { 
    let spinningActivity = MBProgressHUD.showAdded(to: self.view, animated: true) 
    spinningActivity.label.text = "Loading" 
} 

func stopProgressHUD() { 
    DispatchQueue.main.async { 
     MBProgressHUD.hide(for: self.view, animated: true) 
    } 
} 

呼び出されたときに最初の機能が正常に動作します - > HUDが開始されます。 ただし、私がstop関数を呼び出すと、HUDは決して停止しません。説明によると、私の停止機能の中で呼び出すhide関数は、ビューの最上部のHUDを隠します。私は唯一のHUDビューで開いているが、HUD決して停止します。

func stopProgressHUD() { 
    DispatchQueue.main.async { 
     MBProgressHUD.hideAllHUDs(for: self.view, animated: true) 
    } 
} 

私は何の問題もないが、hideAllHUDs機能が廃止されました - >警告状態は、「店舗の参照がビューごとに複数のHUDを使用するときに」:

は、私が使用している場合。

どのようにHUDを停止させるのですか?

+0

HUD.flash(.Success、delay:2.0)2秒後に却下します。 –

+0

@GouravJoshi for MBProgressHud、hide関数を使用します。却下機能はありません。 –

+0

@HimanshuMoradiyaバックエンドデータベースが必要な情報を送信し、遅れてそれを保持することができなくなるまで、私はHUDを離しています。 –

答えて

2

あなたのViewControllerのグローバル変数としてあなたのspinningActivityを宣言してください。 HUDが必要なときはいつでも、self.spinningActivity = MBProgressHUD.showAdded(to: self.view, animated: true)を行うことができます。もう不要なときは、self.spinningActivity?.hide()

+0

ありがとう!魅力的な作品 –

0

MBProgressHUDをグローバルに宣言し、それを表示および非表示にします。それは間違いなく動作します

関連する問題