2

유니버셜 iOS 앱을 구축 중입니다. 다른보기 컨트롤러를로드하는 여러 개의 단추가 기본보기에 있습니다. "Main.storyboard"및 "iPad storyboard.storyboard"를 설정했습니다. "메인"및 "iPad"에서 두 가지보기를 만들었습니다. "Main"에서 Storyboard ID를 "FirstCar"및 FirstPlayer "로 설정했습니다. "iPad "에서"FirstCarPad "및 FirstPlayerPad"로 설정했습니다. " 일반 설정에서 앱을 Universal로 지정하고 iPhone의 스토리 보드 및 iPad의 "iPad"로 "메인"을 설정합니다.버튼 xcode에서 범용 앱으로 다른 스토리 보드보기로드

다음 코드를 사용하여 초기보기에서 스토리 보드의보기 컨트롤러를 시작합니다.

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ 
    int height = [UIScreen mainScreen].bounds.size.height; 

    if (height == 568.0) { 

     UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
     UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"FirstCar"]; 

     [self presentViewController:vc animated:YES completion:NULL];  } 

} 
else if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad){ 
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"ipad storyboard" bundle:nil]; 
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"FirstCarPad"]; 

    [self presentViewController:vc animated:YES completion:NULL]; } 

나는 viewControllers 응용 프로그램을 "FirstCar"그리고 나는 "FirstPlayer"를 액세스하는 두 번째 버튼을 탭하면 모든 것이 잘 작동하지만 ViewControllers "FirstCarPad"와 "FirstPlayerPad"를 액세스하는 첫 번째 버튼을 탭하면 때문에 캐치되지 않는 예외 'NSInvalidArgumentException'이

종료 앱 충돌 이유 : FirstPlayerPad '

'스토리()는 식별자 뷰 컨트롤러를 포함하지 않는 '

하지만 뷰 콘트롤러는 스토리 보드 ID와 동일하게 설정해야합니다.

나는 머리를 찢어 버리고 있습니다.

누구든지 나를 도와 줄 수 있습니다.

+0

iOS 8 이상을 타겟팅 할 수있는 경우 스토리 보드 및 크기 클래스를 하나 사용하는 것이 좋습니다. – dasdom

+0

iOS 8 이상 크기에 액세스 할 수 있지만 자동 레이아웃을 사용할 때 앱이 올바르게 작동하지 않습니다. 나는 모션 매니저를 사용하고 있으며 오브젝트를 움직이면 원래의 위치로 되돌립니다. 나는 이것이 그렇게 힘들다고 생각하지 않을 것이다. – user1114881

답변

0

이 기능을 사용하려면 Finder에서 Main.storyboard를 복제하여 Main-iPad.storyboard로 이름을 바꾼 다음 프로젝트에 추가하십시오. 나는 새로운 스토리 보드를 마우스 오른쪽 버튼으로 클릭하고 오픈 소스를 선택했다. 이것은 스토리 보드를 코드로 보여 주었고 targetRuntime = "iOS.CocoaTouch"를 targetRuntime = "iOS.CocoaTouch.iPad"로 변경했습니다. 나는 다시 마우스 오른쪽 버튼을 클릭했지만 Open Storyboard를 선택했습니다. 설정을 "Universal"로 설정하고 Main-iPad.storyboard를 iPad의 스토리 보드로 선택하면 모든 것이 올바르게 작동합니다. 각 iPad보기에서 요소의 크기를 조정하고 위치를 변경하면됩니다. 시간이 걸리지 만 가치가 있습니다. 희망이 있으면 도움이 될 것입니다. iPhone에서 iPad로 재구성했을 때 크기가 조정되고보기의 요소 위치가 바뀌었지만 좋았습니다.