2011-09-01 2 views
0

알아낼 수없는 문제가 있습니다. 탭 모음에서 UIsplitview를 사용하는 응용 프로그램을 만들었습니다. 다른 탭을 구현했지만 지금은 첫 번째 탭에서 작업 중입니다. UIsplitview가 가로 모드로 정렬되어 있지 않습니다. 너희들에게 어떤 제안이 있니? 내가 그것을 초상화에서 시작해서 풍경에 가면, 전혀 문제가 없다.상단에 정렬되지 않은 UISplitview

enter image description here

업데이트 : 내가 어디 프레임 어떤 초기화 해달라고, 나는 IB에 등 크기를 확인했다. 다음은 App Delegate에 uisplitview 컨트롤러를 추가하는 방법을 보여줍니다. Tabbar 컨트롤러에서 splitview를 원했기 때문에이 방법이 사용되었습니다. spilview를 추가했을 때 IB에서 마스터와 디테일 뷰를 설정했습니다. 신비의 비트.

if (index == 2) { 

     detailViewController = [[DetailUserCreatorViewController alloc] initWithNibName:@"DetailUserCreatorView" bundle:nil]; 

     userContent=[[UserContentForPopViewController alloc]init]; 

     userContent.userDetails=detailViewController; 

     detailViewController.delegate=userContent; 

     //rootViewController.navigationItem.title = @"List"; 
     UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:userContent] autorelease]; 

     splitViewController = [[UISplitViewController alloc] init]; 
     splitViewController.tabBarItem = controller.tabBarItem; 
     splitViewController.viewControllers = [NSArray arrayWithObjects:nav, detailViewController, nil]; 

     splitViewController.delegate = detailViewController; 

     [controllers replaceObjectAtIndex:index withObject:splitViewController]; 
    } 

업데이트 : 응용 프로그램 위임에 응용 didfinishlaunch에서 선택한 탭을 설정하려고 - self.tabBarController.selectedIndex = 0; 이로 인해 탭이 올바른 위치에 시작되었습니다. 그러나 그것은 적절한 해결책으로 보이지 않습니다.

+0

그것을 수정하고 이유를 다시 게시하려고 코드를 수정합니다 보기가 20 포인트 (상태 표시 줄의 높이)만큼 아래쪽으로 옮겨집니다. – tipycalFlow

+0

그런 식으로 보입니다 - 제가 splitview 컨트롤러를 설정하는 방법을 추가 한 것 같습니다. 문제를 나타내는 코드의 다른 부분이 있습니다. 회신 해주세요. 나는 또한 게시 할 것입니다. – Bjarke

+0

'UserContentForPopViewController'에 펜촉을 사용 했습니까? – tipycalFlow

답변

0

일부 포인터는 ... splitViewController는 윈도우의 하위 뷰를 같이 추가해야합니다 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

[window addSubview:splitViewController.view]; 
[window makeKeyAndVisible]; 

return YES; 
} 

다음 코드는 올바르지 않습니다. delegate에 viewController를 할당하면 안됩니다.

[controllers replaceObjectAtIndex:index withObject:splitViewController]; 

다음 줄 대의원을 할당하는 부분을 처리

splitViewController.delegate = detailViewController; 

또한이 코드 줄을 필요로하지 않습니다. 당신이 당신의 코드를 업로드 할 수 있습니다 경우에도

splitViewController.viewControllers = [NSArray arrayWithObjects:nav, detailViewController, nil]; 

, 또한, 그것은 보인다 ... 도움이 될 몇 가지 코드를 게시 ...

+0

안녕하세요, 제안 해 주셔서 감사합니다. 대표단에 대해 당신이 옳았습니다. 그러나 나는 다른 탭에 mutiple uisplitviews가 있기 때문에이 방법으로 추가해야하는 것으로 보입니다. 아마도 이것은 초기 설명으로는 분명하지 않을 수 있습니다. 회신 해 주셔서 다시 한 번 감사드립니다. – Bjarke

+0

기다리십시오 ... "다른 탭에서 여러 가지 uisplitviews가 있습니까"또는 그 반대의 경우가 있습니까? 그것은 다른 방향 일 것입니다. http://stackoverflow.com/questions/7159352/uitabbarcontroller-in-uisplitviewcontroller/7160544#comment-8596477 – tipycalFlow

+0

죄송합니다. 각 탭마다 하나의 uisplitview가 있습니다. :) – Bjarke

관련 문제