Справочная информация: приложение встряхнуло, чтобы вернуться домой.Домашний вид поддерживает только портрет.Если вы встряхиваете немного сильнее, чем обычно, изображение, которое вы используете, начинает вращаться (что нормально), но затем оно обнаруживает сотрясение и выполняет popViewControlller для домашнего представления.Когда он делает это, он просто отлично загружает контроллер навигации, но представление под (домашним контентом) загружается за полосой и растягивается (в основном оно загружается под панелью навигации, поэтому оно растягивается)
Кнопка «назад» прекрасно справляется с этой задачей - от пейзажа до портрета (поскольку она не переходит в середину)
Как мне поступить с этим изменением ориентации (из-за сотрясения), чтобы я мог вернуться в корневой контроллер вида,без загрузки представления под панелью навигации?
Редактировать: то, что происходит, заключается в том, что контент думает, что он загружает весь вид, поэтому он растягивается, чтобы занять весь экран, не осознавая, что над ним находится панель навигации.Я могу сказать, так как загрузка изображений растянута
добавлено вознаграждение 50.
Редактировать Вот как я обнаруживаю тряску и треск
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if ( event.subtype == UIEventSubtypeMotionShake )
{
UINavigationController *navController = self.navigationController;
[[self retain] autorelease];
HomeViewController *home = [[HomeViewController alloc]init];
[navController popViewControllerAnimated:YES];
home.title =@"Home View Controller";
[home release];
}
if ( [super respondsToSelector:@selector(motionEnded:withEvent:)] )
[super motionEnded:motion withEvent:event];
}
Вот мое приложениеДелегат:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
navController = [[UINavigationController alloc]init];
[self.window addSubview:navController.view];
HomeViewController *home = [[HomeViewController alloc]init];
[[self home] setFrame:[[UIScreen mainScreen] applicationFrame]];
Я включу макет здесь.
Обычный вид:
Растянутый вид после встряхивания / хлопанья:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}