2014-06-09 3 views
0

2 뷰 ParentViewControllerChildViewController; 을 ParentViewController 안에 중첩시키고 자합니다. 나는 스토리 보드에 ParentViewControllerChildViewController을 디자인했습니다. ParentViewController.m에는 부모에 대한 논리가 포함되고 ChildViewController.m에는 하위에 대한 논리가 포함됩니다. ParentViewController.m에서 내가 지금처럼 아이를 추가하위 뷰 컨트롤러 추가

ChildViewController *childVC = [self.storyboard instantiateViewControllerWithIdentifier:@"ChildSBI"]; 
[self addChildViewController:childVC]; 

내 질문 : 나는 ParentViewControllerchildVC을 배치 할 수 있습니다 방법 (즉 원점의 설정).

  1. ALLOC 초기화 아이
  2. 전화 (무효) addSubview : 나는 다음과 같은 것을하고 싶지처럼

    보인다 아이의 뷰 (UIView의 *)보기를

답변

2

어떻게 parentVController 내에서 childVC를 배치 할 수 있습니까? (예 : 원점 설정).

보기 컨트롤러보기에는 해당보기가 있음을 기억하십시오. 보기 컨트롤러의 내용을 화면에 표시하려면 그림을 그려야합니다. 에는 하나의보기 컨트롤러보기가 다른보기 컨트롤러의보기 계층 구조로 나타나며 스토리 보드에서는 쉽게 처리 할 수 ​​있습니다.

는 다음을 수행, 스토리 보드에서 뷰 컨트롤러 사이의 부모/자식 관계를 설정하려면 :

  • 는 부모 뷰 컨트롤러의 뷰 계층 구조에 컨테이너보기를 추가합니다.

  • 해당 컨테이너 뷰의 "embed"segue를 하위 뷰 컨트롤러로 드래그하십시오.

  • 일반적으로 -prepareForSegue:sender: 메서드를 사용하면 부모 컨트롤러가 자식에게 데이터를 전달할 수 있습니다.

원하는 경우 당신은 또한, 프로그래밍 일을 설정할 수 있습니다, 당신이있어 코드는 좋은 시작이다 :, 설정해야합니다 귀하의 부모 뷰 컨트롤러가 아이의 뷰의 그 후

ChildViewController *childVC = [self.storyboard instantiateViewControllerWithIdentifier:@"ChildSBI"]; 
[self addChildViewController:childVC]; 

Creating Custom Container Controllers

UIView *childView = childVC.view; 
childView.frame = CGRectMake(150, 300, 100, 100); //use whatever coordinates you want 
[self.view addSubview:childView]; 

이 더 많은 세부 사항이있다, 그러나 질문에 대한 기본적인 대답은 컨테이너 컨트롤러를 설정해야한다는 것입니다 : 위치와 같이, 부모의 관점에 추가 크기 및 포함 된 컨트롤러보기의 위치.

+1

팁 주셔서 감사합니다. 따라서 인스턴스 생성시 부모가 자동으로 prepareForSegue를 호출하게됩니까? childview가 항상 존재하기 때문에 viewDidLoad에서 addChildViewController를 호출 할 계획이었습니다. – Apollo

+1

@Apollo 예, 포함 된 segue를 사용하면 하위 뷰 컨트롤러가 인스턴스화되고 상위 컨트롤러가로드 될 때'-prepareForSegue : sender :'가 호출됩니다 그것의 전망. – Caleb

+1

아. 매우 상세한 답변과 업데이트 된 프로그래밍 솔루션을 주셔서 감사합니다. 매우 도움이되는 내 친구. – Apollo

관련 문제