iOS方向问题从横向到纵向

时间:2013-12-01 22:46:13

标签: ios uitabbarcontroller uiinterfaceorientation

我已经失去了足够的睡眠,试图弄清楚这个。我有一个支持所有方向的选项卡式应用程序。当应用程序以纵向开始并切换到横向时,一切正常。当应用程序以横向方式启动然后切换到纵向时,我只会在屏幕的底部四分之一处丢失响应!当方向发生变化时,就好像背景中的某些东西没有从横向边界到纵向边界调整“用户交互”区域。

目前我有两个标签。当我切换到第二个选项卡,然后回到第一个选项卡时,问题就消失了!我可以再次与屏幕的底部四分之一进行交互。我之前在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库不是问题。有什么方法我可以调用,当从横向切换到肖像时重新调整“响应区域”?这将是一个救生员。请有人对我有所了解!

1 个答案:

答案 0 :(得分:0)

事实上,当您在横向模式下启动应用时,它应该以纵向方式启动,然后您的viewcontroller需要旋转它。

事实上,你有3种方法:

  1. 首先,我认为最好: https://stackoverflow.com/a/10533561/2204866
  2. 或者您可以为每个创建单独的xib的分隔视图 模式。 Easiest way to support multiple orientations? How do I load a custom NIB when the application is in Landscape?
  3. 最后一次使用自动布局。