2017-01-18 5 views
0

への接続時に、それ自体は表示されませんアプリはバックグラウンドでサーバーに接続しています(DispatchQueueで解決)。iOSのスウィフト3:NetworkIndicatorは、私は現在、私がいる間、ステータスバー内のネットワークインジケータを表示しようとしているスウィフト3.</p> <p>とiOSの10のためのアプリを開発していますサーバー

私の問題は、インジケータが自己表示していないことです。 これはすべきでは指標を示し、サーバ(およそ10mlの液体フッ化水素を圧入5秒のニーズを接続)に接続するコードです:

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(true); 

    UIApplication.shared.isNetworkActivityIndicatorVisible = true; 
    Queue.async { 
     communication.sharedInstance.initCommunication(address: "195.202.147.81", port: 1217) 
    } 
    UIApplication.shared.isNetworkActivityIndicatorVisible = false; 


} 
+2

あなたは '非同期{...}'ないことをどう思いますか、このコードを使用する必要がありますか?通信が開始される前にインジケータをオフにします。 - あなたは、コードを一歩進んだり、 'print'ステートメントを追加することが簡単にできることを確認できます。 –

答えて

1

あなたは文句を言わないそれを見るために時間を持っているので、あなたが直接falseUIApplication.shared.isNetworkActivityIndicatorVisibleを設定しています。代わりに接続が完了したら、falseに設定します。

+0

'UIApplication.shared.isNetworkActivityIndi​​catorVisible = true'を私のアプリケーションを接続する関数に移動したところ、うまくいきました。 –

-1

あなたは

Queue.async { 
    communication.sharedInstance.initCommunication(address: "195.202.147.81", port: 1217) 

    dispatch_async(dispatch_get_main_queue()) { 
    UIApplication.shared.isNetworkActivityIndicatorVisible = false; 
    } 
} 
+0

更新:私はそれがこのように書かれるべきだと思います。 – Poles

+0

私は 'InitCommunication'関数に移しました。あなたのソリューションの利点は何ですか? –

+0

通信がバックグラウンドで完了したら、メインキューに移動してUIを更新する必要があります。 – Poles

関連する問題