Степень экспортирикатор не работает так же на iPhone и симуляторе?

StackOverflow https://stackoverflow.com/questions/2626483

Вопрос

Я использую сетевой экземпляры, чтобы показать, что мое приложение делает некоторую работу. Когда я запускаю приложение в симуляторе, он показывает то, как я хочу - в основном вращаться в целом, пока вкладка «Выбранная вкладка не загрузит данные с сервера», но когда я положу приложение на мой телефон, я только получающуюся Спиннер до того, как он исчезнет. Обычно только спины прямо перед видом появляется на экране.

Идеи?

Редактировать: проблема, возможно, придется делать с тем, что я использую Tabbar ... В симуляторе активность спина будет вращаться на экране / вкладке 1, а на экране / вкладке 2 загружается. На телефоне я вижу только активное отношение только к разделению секунды после появления экрана 2.

-(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
}
Это было полезно?

Решение

Вы включаете спиннер здесь ...

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

Но сразу вы отключаете ...

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

Конечно, это не покажет. Я удивлен, это показывает в симуляторе.

То -doneSpinning Метод должен быть вызван после -getDataFromServer сделано или просто сделать

UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES;
[self getDataFromServer]; // assumes it is blocking.
app.networkActivityIndicatorVisible = NO;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top