0

NetworkActivityIndi​​catorを使用して、アプリが何らかの作業を行っていることを示しています。シミュレーターでアプリを実行すると、希望どおりの方法で表示されます。基本的に、選択したタブがサーバーからデータを読み込むまでずっと回転しますが、アプリを携帯電話に置くと、ほんの一瞬しか表示されません。スピナーが消える前に。通常、ビューが画面に表示される直前にのみ回転します。

アイデア?

編集:問題は、私がTabBarを使用しているという事実に関係している可能性があります...シミュレーターでは、画面/タブ2の読み込み中にActivityIndi​​catorが画面/タブ1で回転します。電話では、画面2が最終的に表示されてからほんの一瞬だけActivityIndi​​catorが表示されます。

-(void)viewDidLoad {

// call to spinTheSpinner
[NSThread detachNewThreadSelector:@selector(spinTheSpinner) toTarget:self withObject:nil];

// method to Get the Data from the Server
[self getDataFromServer];

}

-(void)spinTheSpinner {
    NSLog(@"Spin The Spinner");
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    [self performSelectorOnMainThread:@selector(doneSpinning) withObject:nil waitUntilDone:YES];

    [pool release]; 
}

-(void)doneSpinning {
    NSLog(@"done spinning");
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}

-(void)getDataFromServer {
    // does a bunch of stuff to retrieve and display data
}
4

1 に答える 1

0

ここでスピナーをオンにします…</p>

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

しかし、すぐにオフにします…</ p>

[self performSelectorOnMainThread:@selector(doneSpinning) …];

もちろん表示されません。シミュレーターに表示されてびっくりしました。

-doneSpinningメソッドは、完了後に呼び出すか -getDataFromServerまたは単に実行する必要があります

UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES;
[self getDataFromServer]; // assumes it is blocking.
app.networkActivityIndicatorVisible = NO;
于 2010-04-13T15:11:46.840 に答える