2014-07-07 3 views
1

자동 레이아웃 방향에 문제가 있습니다. 간단하게 나는이 코드 라인 rootVC에서 제어 할 뷰 컨트롤러를 밀어있어자동 레이아웃 방향이 작동하지 않습니다.

fooBar *foo = [[fooBar alloc]initWithNibName:@"fooBar" bundle:nil]; 
    [self.navigationController pushViewController:foo animated:NO]; 

내가 전화를 켜면 가로 방향을 얻을 수 있어야하지만 전화는 여전히 남은 그래서 내 FOOBAR 뷰 컨트롤러는 자동 레이아웃이 세로 모드에서.

또한 이상한 부분이 아래 내가 디버그 및 방법입니다 ..에 작동하지 않습니다

Orientation settings

엑스 코드 5.1

답변

2

이것은 아마도 탐색 컨트롤러가 해당 메서드 호출을 전달하지 않기 때문일 수 있습니다. 어떤보기에 위의 두 가지 방법을 요약 그래서

- (BOOL)shouldAutorotate 
{ 
    return [self.visibleViewController shouldAutorotate]; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return [self.visibleViewController supportedInterfaceOrientations]; 
} 

, UINavigationController가 당신의 자신의 구체적인 구현을 생성하고 전달할 : 당신이 그것을 원하는 경우에, 당신은 당신의 자신의 주문 탐색 컨트롤러를 만들고 따라이 패턴을해야합니다 컨트롤러가 현재 표시됩니다. 그런 다음 fooBar 클래스에서 호출되는 메서드를 확인해야합니다.

+0

네비게이션 컨트롤러에서 FooVC를 푸시하여 새로운 프로젝트에서 말한 것을 시도해 보았다. 네비게이션 콘트롤러가 오리엔테이션 스터프를 처리하는 것 같습니다. 하지만 슬프게도 내 주요 프로젝트에서 작동하지 않았다. 내 프로젝트는 오래되었습니다 (iOS 5였습니다). 우리는 자동 레이아웃으로 이민하려고합니다. 어쩌면 그 이유가 .. – mert

0
,

(BOOL) shouldAutorotate{ 
return YES; 
} 
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
//returns true if want to allow orientation change 
return TRUE; 
} 

빌드 옵션이 있는데 SDK 6.0 (내가 FOOBAR VC에 넣어)

프로젝트 설정에서 이러한 방향을 확인했는지 확인하십시오.

+0

예 나는 plist 및 일반 옵션 모두에서 장치 방향 옵션을 놓치지 않았습니다. – mert

관련 문제