我已经失去了足够的睡眠,试图弄清楚这个。我有一个支持所有方向的选项卡式应用程序。当应用程序以纵向开始并切换到横向时,一切正常。当应用程序以横向方式启动然后切换到纵向时,我只会在屏幕的底部四分之一处丢失响应!当方向发生变化时,就好像背景中的某些东西没有从横向边界到纵向边界调整“用户交互”区域。
目前我有两个标签。当我切换到第二个选项卡,然后回到第一个选项卡时,问题就消失了!我可以再次与屏幕的底部四分之一进行交互。我之前在viewDidLoad中设置选项卡视图控制器而不是viewDidAppear时,我遇到了类似的问题。一切都在viewDidAppear现在。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)viewDidAppear:(BOOL)animated
{
NSArray* controllers = nil;
TimeTableViewController * timeTableViewController = [[TimeTableViewController alloc] init];
FRLayeredNavigationController *timeTableNavController = [[FRLayeredNavigationController alloc] initWithRootViewController:timeTableViewController configuration:^(FRLayeredNavigationItem *item)
{
item.hasChrome = YES;
}];
timeTableNavController.dropLayersWhenPulledRight = true;
TestViewController* vc2 = [[TestViewController alloc] init];
timeTableNavController.tabBarItem = [[UITabBarItem alloc]
initWithTitle:@"Student Lookup"
image:[UIImage imageNamed:@"search_gray.png"]
tag:0];
timeTableNavController.tabBarItem = [[UITabBarItem alloc]
initWithTitle:NSLocalizedString(@"Attendance", @"Attendance")
image:[UIImage imageNamed:@"attendance_gray.png"]
tag:0];
timeTableNavController.view.backgroundColor = [UIColor lightGrayColor];
controllers = [NSArray arrayWithObjects:timeTableNavController,vc2, nil];
self.viewControllers = controllers;
}
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
我认为FRLayeredNavigationController库不是问题。有什么方法我可以调用,当从横向切换到肖像时重新调整“响应区域”?这将是一个救生员。请有人对我有所了解!
答案 0 :(得分:0)
事实上,当您在横向模式下启动应用时,它应该以纵向方式启动,然后您的viewcontroller需要旋转它。
事实上,你有3种方法: