Я пытаюсь заставить загрузку UIAlertView с ActivityIndicator всплывать, как только я нажимаю кнопку.В этот момент мне нужно запустить команду dpkg .
Я очень близок к ее завершению.Есть только одна проблема, когда я касаюсь своей кнопки, UIAlertView загружается не полностью (затемненный экран), пока приложение устанавливает пакет debian.Как только пакет завершит установку, UIAlertView загружается полностью за секунду.Затем отклоняется с [alert dismissWithClickedButtonIndex:0 animated:YES];
Я не уверен, если это должно быть в другом потоке, поэтому я попытался сделать это.Не уверен, правильно ли я это настроил.Так вот мой код.Предложения?Исправления?
.m
-(IBAction)installdeb:(id)sender{
UIAlertView *alerty = [[UIAlertView alloc] initWithTitle:@"Installing..." message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles: nil];
UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[alerty addSubview:progress];
[progress startAnimating];
[alerty show];
[alerty release];
[NSThread detachNewThreadSelector:@selector(installdeb) toTarget:self withObject:nil];
}
- (void)installdeb{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
char *installdebchar = [[NSString stringWithString:@"dpkg -i /Applications/MyApp.app/package.deb"] UTF8String];
system(installdebchar);
if (system(installdebchar) == 0){
[alerty dismissWithClickedButtonIndex:0 animated:YES];
UIImage *img1 = [UIImage imageNamed:@"whitecheckmark.png"];
[ImageView1 setImage:img1];
} else {
[alerty dismissWithClickedButtonIndex:0 animated:YES];
}
[pool release];
}
.h
@class DebInstallViewController;
@interface DebInstallViewController : UIViewController <UINavigationBarDelegate, UINavigationControllerDelegate, UIAlertViewDelegate>{
IBOutlet UIAlertView *alert;
IBOutlet UIImageView *ImageView1;
}
- (IBAction)installdeb:(id)sender;
@end
Я вроде как новичок в цели c,Так что не ненавидь.:) Предложения?