Кнопка возврата iPad перестает работать при повороте - PullRequest
1 голос
/ 20 июня 2011

Я занимаюсь разработкой приложения для iphone / ipad.

Проблема в том, что когда я меняю ориентацию портрета ipad на альбомную, перестает работать кнопка «Назад» навигационного контроллера.

Работает нормально, если ориентация не изменилась.

я использую этот код

 - (BOOL) isPad{    
 #ifdef UI_USER_INTERFACE_IDIOM
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
 #else
    return NO;
 #endif
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if ([self isPad]) {
    return YES;
}
else 
{
    return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}

}

Что не так с этим кодом?

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Это будет работать:

-(void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

}

-(void)viewWillDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}  

Теперь реализуем следующий метод:

-(void)checkOrientation
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationLandscapeLeft||orientation==UIDeviceOrientationLandscapeRight)
{

    // Set x coorinate of views you want to change

}
else
{

    // Set x coordinates of views to initial x xoordinates.

}

}  

Создать полученное вращение:

- (void)receivedRotate:(NSNotification *)notification
{    
[self checkOrientation];
}  

В viewDidLoad:

-(void)viewDidLoad
{  
// Code    
[self checkOrientation];
}
0 голосов
/ 20 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...