UIActivityIndicator во время запуска приложения - PullRequest
0 голосов
/ 02 августа 2011

Я искал, но не нашел именно то, что искал. У меня есть приложение UITabBar, которое, на первый взгляд, загружает большой набор данных из Интернета. Это может занять несколько секунд, особенно при подключении к пограничной сети.

У меня есть экран запуска с логотипом и т. Д., Но я хотел бы добавить индикатор активности, чтобы показать пользователю, что что-то действительно происходит.

Как мне этого добиться? Сообщения, которые я нашел, касаются только ActivityIndicators при переключении между вкладками.

Спасибо

1 Ответ

0 голосов
/ 02 августа 2011

Если загрузка данных занимает много времени, вы можете выбрать другой контроллер представления в качестве вашего rootViewController, просто имея Splashscreen (экран с изображением или представлением, которое вы можете отображать до загрузки данных), индикатор активности и время загрузки завершите удаление temprootViewcontroller из окна и добавьте свой оригинальный контроллер в окно.

Редактировать

    //To show custom Splash screen do something like in
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

SplashScreenVC *splashScreenVC = [[SplashScreenVC alloc] initWithNibName:@"SplashScreenVC" bundle:nil];
    self.window.rootViewController = splashScreenVC;
    [self.window makeKeyAndVisible];

//And when your data finishes downloading you can write following there to show your tabBar.

AppDelegate*delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
delegate.window.rootViewController = delegate.tabBarController;
[delegate.window makeKeyAndVisible];

//If you want to simulate downloading and want to sleep the device you can try this in SplashScreenVC

-(void)viewDidAppear:(BOOL)animated{
        [super viewDidAppear:animated];
        [self performSelector:@selector(gotosleep) withObject:nil afterDelay:1.0];
    }
    -(void)gotosleep{
        sleep(5);
        AppDelegate*delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
        delegate.window.rootViewController = delegate.tabBarController;
        [delegate.window makeKeyAndVisible];
    }
...