Приложение зависло после трех раз ориентации - PullRequest
0 голосов
/ 18 мая 2011

У меня есть UIviewController с PDF в нем. Я использую ориентацию на другом экране для отображения PDF. Ориентация работает хорошо три раза, а затем приложение зависает с приведенным ниже предупреждением.

[Переключение на процесс 11779, поток 0x0]

[Переключение на процесс 13059 поток 0x0]

[Переключение на процесс 11779, поток 0x0]

Что это говорит? Пожалуйста, найдите код ниже.

- (void)viewDidLoad
{
  self.view.backgroundColor = [UIColor clearColor];
  pdfURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]                    pathForResource:@"Sample" ofType:@"pdf"]];
[webView loadRequest:[NSURLRequest requestWithURL:pdfURL]];       
thisDevice = [UIDevice currentDevice];  
[thisDevice beginGeneratingDeviceOrientationNotifications];    
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];            
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(detectOrientation) name:UIDeviceOrientationDidChangeNotification object:nil];
[self setTitle:@"1 Of 1"];
[super viewDidLoad];
}

-(void) detectOrientation
{    
if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
    ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) {

    //load view 2

    IdcardVC *ids = [[IdcardVC alloc] initWithNibName:@"IdcardVC" bundle:nil];
[self.navigationController presentModalViewController:ids animated:YES];
[ids release];
} 
else if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait) {

     [self dismissModalViewControllerAnimated:NO];
}

Любая помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 18 мая 2011

Вместо того, чтобы выполнять эту сложную задачу, вы должны использовать метод по умолчанию, предоставленный ios для работы с элементами ориентации:

Просто добавьте следующий код в ваш файл .m :

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return YES;
}
...