2014-10-31 5 views
3

TheSidebarController를 사용하여 iOS 응용 프로그램에 슬라이딩 메뉴를 추가합니다. 이것은 내가 사용하고있는 라이브러리이지만 ECSlidingViewController와 같은 다른 라이브러리에서 같은 문제를 발견했습니다. 본질적으로 포함 된 뷰 컨트롤러에 여러 뷰 컨트롤러를 추가하여 작동합니다.iOS 7에서 여러 개의 viewcontrollers/views가있는 화면에서 방향이 잘못되었습니다 (iOS 8은 괜찮음)

앱을 가로형 앱으로 설정하면 컨테이너, 메뉴, 콘텐츠 화면의 모든 화면이 세로 모드로 생각되어 반쯤 자르는 문제가 발생합니다. 테이블이 잘린이 스크린 샷에서이 문제를 볼 수 있습니다. http://imgur.com/xD5MUei

나는 이것을 할 수있는 한 어떤 방식 으로든 작동하도록 노력해 왔습니다. 어떤 도움이 크게 감사합니다 https://github.com/jondanao/TheSidebarController

:

편집 :
나는 + 예제 프로젝트를 사용하고 라이브러리는 여기에서 찾을 수 있습니다 사람들이 내가 정상 보이게하기 위해 밖으로 표를 늘릴 수 말하는, 그러나 이것은 애플 리케이션 및/또는 화면이 여전히 세로 방향으로 있다고 생각하는 기본 문제를 가리는 것입니다. 나는 예제 프로젝트를 취할 경우 빠른 예를 들어, 및 LeftViewController에 다음 코드를 대체 :

- (void)dismissThisViewController 
{ 
    UIViewController* vc = [[UIViewController alloc] init]; 
    UINavigationController* pulldown = [[UINavigationController alloc] initWithRootViewController:vc]; 

    pulldown.view.frame = CGRectMake(pulldown.view.frame.origin.x, -[[UIApplication sharedApplication] delegate].window.frame.size.height, 
            pulldown.view.frame.size.width, pulldown.view.frame.size.height); 
    [[[UIApplication sharedApplication] delegate].window addSubview:pulldown.view]; 

    [UIView animateWithDuration:.5 animations:^{ 
    pulldown.view.frame = CGRectMake(pulldown.view.frame.origin.x, 0, 
            pulldown.view.frame.size.width, pulldown.view.frame.size.height); 
    } completion:^(BOOL finished) { 
    ; 
    }]; 
} 

의 ViewController가 아니라 위에서, 옆에서 온다.

답변

2

이것은 이상한 일이었다 ... 난 이해가 만든 콘텐츠 뷰 컨트롤러의 프레임을 설정했지만, 그러면 나는 그것을 내용이 갱신 될 때마다를 재설정했다 :

- (void)setContentViewController:(UIViewController *)contentViewController 
{ 
    // Old View Controller 
    UIViewController *oldViewController = self.contentViewController; 
    [oldViewController willMoveToParentViewController:nil]; 
    [oldViewController.view removeFromSuperview]; 
    [oldViewController removeFromParentViewController]; 

    // New View Controller 
    UIViewController *newViewController = contentViewController; 
    [self.contentContainerViewController addChildViewController:newViewController]; 
    [self.contentContainerViewController.view addSubview:newViewController.view]; 
    [newViewController didMoveToParentViewController:self.contentContainerViewController]; 

    _contentViewController = newViewController; 
    if ([DeviceDetection isDeviceiPad]) { 
     _contentViewController.view.frame = CGRectMake(0, 0, 1024, 768); 
    } 
} 
0

크기를 조정 클래스 대신 UITableViewController의 서브 클래스합니다.

[self.view addSubview:self.tableView];CenterViewController.m에 댓글을 달아주세요.

완료! 당신이있는 tableview를 만들 때,이 줄을 추가 centerViewController.m에서

+0

테이블이 특정 예에서 보는 방법이 수정, 그러나 기본 방향이 잘못되었다고 변경되지 않습니다. 빠른 예제로 viewcontroller를 왼쪽 또는 오른쪽 뷰 컨트롤러에 표시하려고하면 세로 방향으로 옆쪽으로 나타납니다 – Adam

0

:

self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
+0

이 예제에서는 테이블 모양을 수정하지만 기본 방향이 잘못되었음을 변경하지는 않습니다 . 예를 들어, viewcontroller를 왼쪽 또는 왼쪽 컨트롤러에 표시하려고하면 세로 방향으로 옆쪽으로 나타납니다. – Adam