2017-11-21 4 views
0

私は別のビューコントローラにプッシュしたいですが、ボタンを数回押すと2回以上ビューコントローラに押し込まれます。何度もプッシュを防止する方法が起こった。次のビューコントローラへのプッシュの防止を2回

DispatchQueue.main.async { 
     let vc: MyOrderDetailsViewController? = self.storyboard?.instantiateViewController(withIdentifier: "orderDetailsVC") as? MyOrderDetailsViewController 
     self.navigationController?.pushViewController(vc!, animated: true) 
    } 
+0

sk .... – Simmy

+0

初めてのプッシュ後にボタンを無効にする –

+0

@Nur ||ボタンを押すと第2コントローラーが2回表示されますか?一般に、すべてのUI関連の作業はメインキューで行われるため、メインキューですでに発生しているものを作成する必要はありません。私はストーリーボードを一度チェックすることをお勧めします、そこからセグを接続しましたか? –

答えて

0

非同期メソッドは、バックグラウンドでのスレッド&プッシュVCを作成しますので、任意のビューコントローラをプッシュする非同期メソッドを使用しないでください...

それはあなたのコードあなたが押されたように多くの時間を実行しますが、代わりに使用します...このことができます。これは、あなたがもう一度クリックするか、タスクを完了するまで、同じコードを再実行することはできません。..

func pushTap() 
{ 
    let vc: MyOrderDetailsViewController? = self.storyboard?.instantiateViewController(withIdentifier: "orderDetailsVC") as? MyOrderDetailsViewController 
    self.navigationController?.pushViewController(vc!, animated: true) 
} 

希望のコードに従ってくださいおかげTA非同期(async)は使用しないでください

+1

理由を説明してください。 –

関連する問題