내 보편적 인 응용 프로그램에는 처음에는 마스터 세부 사항이 있습니다. iPad에서는 분할보기로 표시되며 인터페이스 방향을 변경하면 자동 크기 조정이 올바르게 작동합니다. 그러나 iPhone에서는 세부적인보기에는 충분하지 않습니다. 그래서 정확히 동일한 기능을 가지고 있어야 내 DetailViewController에 대한 두 가지 다른보기를 갖고 싶어,하지만 난 정말 제대로 작동하도록 얻을 수 없습니다. 나는 두 개의 뷰 컨트롤러를 사용하려고 시도했지만, 실제로 그렇게하지는 않았다. 나는 스토리 보드를 사용하고 있습니다.iOS : 스토리 보드에서 가로보기와 세로보기를 전환하는 방법은 무엇인가요?
내 DetailViewController에 두 개의 뷰를 추가하여 해결책을 찾았다 고 생각했습니다. 그 때 나는 단순히 현재의 방향을 확인하고이 같은 최근보기 설정 :
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Video *currentVideo = [[self.xmlParser videos] objectAtIndex:indexPath.row];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
[self.detailViewController setDetailItem:currentVideo];
else {
if (!self.detailViewController) {
DetailViewController *nextController = [self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
if ([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait)
[nextController setView:nextController.portraitView];
else
[nextController setView:nextController.landscapeView];
[nextController setDetailItem:currentVideo];
[self.navigationController pushViewController:nextController animated:YES];
}
}
}
이 그것을해야처럼 작동,하지만 지금은 또 다른 문제에 직면 해있다. 두 개의 뷰에는 정확히 동일한 콘센트가 포함되어 있지만 어느 하나의 콘센트 만 내 DetailViewController 클래스에 연결할 수 있습니다. 따라서 방향 중 하나에서 내용을 제대로 볼 수 없거나 피하려는 모든 것을 두 번 코딩해야합니다.
이 문제를 어떻게 해결할 수 있는지 아이디어가 있습니까? 사전
나는 그것을 시도했지만 실제로 작동시키지 못했습니다. 처음에로드 된 세 번째보기를 유지 한 다음 오리엔테이션에 따라 사용자 정의보기를 추가해야합니까? – Bautzi89
둘 다 컨테이너보기에 배치하거나 컨트롤러 중 하나의 '보기'콘센트 및 'portraitView'콘센트에 바인드 할 수 있습니다 (다른보기는이 시나리오에서 'landscapeView'에 바인드 됨). 컨테이너보기를 사용하지 않는 경우,보기를 숨기거나 표시하는 대신 방향이 변경 될 때 컨트롤러의 '보기'콘센트에 바인딩 된보기를 전환해야합니다. –
빠른 답변을 보내 주셔서 감사합니다. 하지만 지금은 새로운 문제에 직면하고 있습니다. 편집 한 질문을 확인해 주시겠습니까? – Bautzi89