Есть одна проблема, с которой я боролся, и я не могу получить достаточно информации об этом в Интернете.Это связано с многозадачностью Apple и представлением панели вкладок.Я хочу контролировать, какая вкладка будет выбрана, когда приложение выходит на передний план или становится активным.В настоящий момент каждый раз, когда я закрываю приложение и открываю его снова, оно открывает последний UIView, который отображался на панели вкладок.Как я могу это контролировать?
Во-первых, я хочу иметь возможность отображать изображение предварительного просмотра с логотипом приложения каждый раз, когда приложение становится активным.Вот код, который я использую для этого, но я продолжаю получать EXC_BAD_ACCESS, когда приложение вводит передний план для этой строки: [window addSubview: self.preMiniView]:
- (void)applicationDidBecomeActive:(UIApplication *)application {
if (!self.preMiniView)
{
self.preMiniView = [[UIImageView alloc] initWithFrame:window.frame];
self.preMiniView.frame = CGRectMake(0,0,324,480);
window.backgroundColor = [UIColor colorWithRed:21.0/255.0 green:7.0/255.0 blue:2.0/255.0 alpha:1];
}
UIImage *img = [UIImage imageNamed:@"preloadSm.jpg"];
self.preMiniView.image = img;
[img release];
if (self.preMiniView.alpha == 0.0)
{
[self.preMiniView setAlpha:1.0];
}
[window addSubview:self.preMiniView]; // adding the how to view to the view.
[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(initApp:)
userInfo:nil
repeats:NO];
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[tabBarController.view endEditing:YES];
[tabBarController.view setAlpha:0.0];
[self.preMiniView release];
self.preMiniView = nil;
NSLog(@"applicationDidEnterBackground iphone");
}
- (void)initApp:(NSTimer *)timer
{
if (self.preMiniView)
{
[NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(removePrev:)
userInfo:nil
repeats:NO];
[window insertSubview:tabBarController.view atIndex:0];
[tabBarController.view setAlpha:1.0];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.7];
[self.preMiniView setAlpha:0.0];
[UIView commitAnimations];
}
}
- (void)removePrev:(NSTimer *)timer
{
[self.preMiniView removeFromSuperview];
}
Во-вторых, я пытаюсьпредставить PDF-файл с одним из моих UIViews, когда мое приложение запускает приложение метода: openURL: sourceApplication: annotation (используется для открытия файла из приложения электронной почты).Я получил правильный URL-адрес файла, но я не уверен, как отобразить фактический файл в одном из моих пользовательских UIView под названием PDFReaderViewController.Кажется, я не могу просто использовать этот код в AppDelegate:
pdfController = [[PDFReaderViewController alloc] init];
[pdfController initFromName:fileName];
[[self navigationController] pushViewController:pdfController animated:YES];
[pdfController release];
pdfController = nil;
Я получаю предупреждение: получатель 'PDFReaderViewController' является классом пересылки, и соответствующий @interface может не существовать
ЛюбойИдея, как отобразить новый файл с помощью PDFReaderViewController из AppDelegate?
Я, должно быть, упускаю что-то простое здесь .... спасибо за вашу помощь!