비디오: Getting Started in VR | Live Training | Unreal Engine 2024
iOS 앱의 iPad 스토리 보드에서 Detail View 컨트롤러 오브젝트를 삭제할 수 있습니다 (그러나 프로젝트 네비게이터에서 DetailView 컨트롤러 클래스 파일을 삭제하지 않도록하십시오). Split View 컨트롤러와 Detail View 컨트롤러 사이의 관계를 Weather 컨트롤러와 바꾸십시오.
날씨 컨트롤러는 여기에서 임의로 선택되었습니다. 다른보기 컨트롤러로 쉽게 대체 할 수 있습니다. 앱이 실행될 때 사용자에게 표시되는 세부 정보보기입니다.
다음 단계는 상세보기 컨트롤러를 교체하는 방법을 보여줍니다.
-
문서 개요 또는 캔버스에서 상세보기 컨트롤러와 연관된 탐색 컨트롤러를 선택하고 Delete 키를 누릅니다.
문서 개요에서 상세보기 컨트롤러를 선택하여 강조 표시하는 것이 가장 쉽습니다. 그러면 네비게이션 컨트롤러가 그 옆에있을 것입니다.
-
문서 개요 또는 캔버스에서 Detail View 컨트롤러를 선택하고 Delete 키를 누릅니다.
Split View 컨트롤러와 Weather 컨트롤러 사이에 새로운 관계를 만들어야합니다.
-
스토리 보드 나 문서 개요에서 분할보기 컨트롤러를 선택하고, 날씨 컨트롤러로 Control 키를 누른 상태에서 끌어서 나타나는 팝업 메뉴에서 관계 - 상세보기 컨트롤러를 선택하십시오.
명확성을 위해 상황이 약간 재 배열되었습니다. 보기 컨트롤러를 다시 정렬 할 때 모든 이름이 지정되었는지 확인하십시오. 그런 다음 가장 논리적 인 배열을 만드는 것을 보려면 확대하거나 축소 할 수 있습니다.
응용 프로그램에서 DidFinishLaunchingWithOptions:을 약간 변경해야합니다. AppDelegate의 해당 메서드에 굵은 체로 된 코드를 추가하십시오. 엠. UISplitViewController * splitViewController = (UISplitViewController *) self - (BOOL) 응용 프로그램: (UIApplication *) 응용 프로그램이 FinishedLaunchingWithOptions: (NSDictionary *) launchOptions {if ([UIDevice currentDevice] userInterfaceIdiom == UIUserInterfaceIdiomPad) 창문. rootViewController;
if ([splitViewController. viewControllers [1] isKindOfClass: [UINavigationController class]]) { UINavigationController * detailNavigationController = [splitViewController. viewControllers lastObject]; splitViewController. 위임자 = (id) navigationController.topViewController; } else splitViewController. delegate = [splitViewController. viewControllers lastObject]; … 나머지 메소드} 여기에서 변경 한 사항은 분할 뷰 컨트롤러 대리자로 지정할 상세 뷰 컨트롤러를 얻는 방법입니다. Split View 컨트롤러는 두 개의 View Controller를 관리하며, Detail 컨트롤러에 표시된 컨트롤러의 목록에 마지막 컨트롤러가 표시됩니다.
마지막 뷰 컨트롤러를 확인하여 isKindOfClass: 메시지를 전송하여 네비게이션 컨트롤러 (Detail View 컨트롤러가 포함되어 있는지)를 확인합니다. 이 메서드는 UINavigationController인지 여부를 나타내는 Boolean을 반환합니다.
->
if ([splitViewController. viewControllers [1] isKindOfClass: [UINavigationController class]]) {UINavigationController * detailNavigationController = [splitViewController. viewControllers lastObject]; splitViewController. delegate = (id) detailNavigationController. }Navigation 컨트롤러 인 경우 View Controller (SplitViewControllerDelegate 프로토콜을 채택하고 프로토콜 메서드를 구현하며 Split View 컨트롤러의 대리자가 될 수 있음)를 찾아야합니다.이 컨트롤러는 네비게이션 컨트롤러의 topViewController 속성에 액세스합니다. (스택에있는 처음이자 유일한보기 컨트롤러를 가리 킵니다.) 그런 다음 위임자로 지정합니다.네비게이션 컨트롤러가 아닌 뷰 컨트롤러 인 경우 (날씨 컨트롤러를 디테일 뷰 컨트롤러로 만들었으므로 네비게이션 컨트롤러가 없음), 그 뷰를 할당하면됩니다 컨트롤러를 대리자로 사용합니다.
else splitViewController. delegate = [splitViewController. viewControllers lastObject];
프로젝트를 만들고 실행하면 지금 뒤로 물러 설 것 같습니다. 당신이 볼 수있는 것은 빈 화면뿐입니다 - 세로 방향으로도 더 작습니다 (테스트 드라이브 컨트롤러를 초기 디테일 뷰 컨트롤러로 유지하지 않았다면).