В настоящее время я создаю приложение для iPhone с использованием Xcode 4.0.2. Я хочу, чтобы приложение переключало представления, когда пользователь поворачивает свой телефон.Например: если пользователь перевернет свой iPhone на бок, iPhone изменится на готовый ландшафтный вид.Я создал код для него, но когда я запускаю его в iOS Simulator и поворачиваю устройство, ничего не происходит.Что я делаю не так?
Заголовочный файл:
#import "FlipsideViewController.h"
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
IBOutlet UIView *portraitView;
IBOutlet UIView *landscapeView;
}
@property (nonatomic, retain) UIView *portraitView;
@property (nonatomic, retain) UIView *landscapeView;
@end
Файл реализации (.m):
#import "MainViewController.h"
#define deg2rad (3.1415926/180.0)
@implementation MainViewController
@synthesize portraitView;
@synthesize landscapeView;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
self.view=landscapeView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(90));
self.view.bounds=CGRectMake(0.0, 0.0, 480.0, 320.0);
} else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
self.view=landscapeView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(-90));
self.view.bounds=CGRectMake(0.0, 0.0, 480.0, 320.0);
} else {
self.view=portraitView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(0));
self.view.bounds=CGRectMake(0.0, 0.0, 300.0, 460.0);
}
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
@end
Я вынул некоторые ненужные вещи, так что файл .m может выглядеть немного голым.Я связал IBOutlets landscapeView и PortraitView с двумя различными представлениями в одном файле .xib с именем MainViewController.xib
При его создании нет ошибок, предупреждений или сигналов.
Есть либолее простой способ сделать это, или я просто делаю это неправильно?Может ли кто-нибудь помочь?Заранее спасибо!