在我的iPad应用程序中,我有一个UIScrollView。 当我在“iPad 5模拟器”下运行它时,应该会激活TooototToInterfaceOrientation并且一切都没事,但在“iPad 4.3模拟器”中,此事件不会触发。
我该如何解决这个问题?
另一个问题:当我在“iPad 5模拟器”中测试我的应用时,此事件会在启动时触发7次
以下是我的代码的一部分:
#import“AppDelegate.h”
#import "ContentController.h"
@implementation AppDelegate
@synthesize window, contentController;
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
NSString *nibTitle = @"iPad";
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{ nibTitle = @"Iphone";
}
[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil];
[self.window addSubview:self.contentController.view];
[window makeKeyAndVisible];
}
@end
contentController.h
@interface ContentController:UIViewController
{
NSArray *contentList;
}
@property (nonatomic, retain) NSArray *contentList;
@end
PadContentController.h
@interface PadContentController : ContentController <UIScrollViewDelegate>
{
UIScrollView *appScrollView;
NSMutableArray *viewControllers;
}
@property (nonatomic, retain) IBOutlet UIScrollView *AppScrollView;
@property (nonatomic, retain) NSMutableArray *viewControllers;
@end
shouldAutorotateToInterfaceOrientation位于PadContentController中。
@interface PadContentController : ContentController <UIScrollViewDelegate>
{
UIScrollView *appScrollView;
NSMutableArray *viewControllers;
}
@property (nonatomic, retain) IBOutlet UIScrollView *AppScrollView;
@property (nonatomic, retain) NSMutableArray *viewControllers;
@end
我已经在UIScrollView中添加了一些视图,在每个视图中也实现了shouldAutorotateToInterfaceOrientation。 当我在“iPad 5模拟器”中运行app时,应该调用PadContentController和所有视图中的AutorotateToInterfaceOrientation。 但是当我在“在iPad 4.3模拟器中”运行它时,只需要调用第一个视图中的AutorotateToInterfaceOrientation(刚刚启动)并且PadContentController中的shouldAutorotateToInterfaceOrientation不会调用,因此不会发生旋转。