2014-07-08 4 views
0

내가 지금처럼 기본보기에서 용기에 다른 하위 뷰를로드 할 수 있어야 응용 프로그램을 짓고 있어요와 함께 용기에 특정 하위 뷰를로드 노란색보기가 컨테이너 안에 표시되어야합니다. (노란색보기의 맨 위에있는 버튼을 무시하십시오. 실제로는 아무 것도 없어야합니다.)는 슈퍼 뷰의 버튼

사용자가 "로컬 재생"또는 "로컬 재생"을 누르면로드 할보기를 기억하는 값이 저장됩니다 "youtube 재생". 사용자가 "play local"을 누르면 오렌지색/파란색/하늘색 중 하나가로드되어야하고 "play youtube"를 누르면 어두운/갈색/자주색보기가로드되어야합니다.

지우기 단추를 누르면 컨테이너에 노란색보기가 다시 표시됩니다.

녹색 컨트롤러의 버튼을 컨테이너 내부에 표시 할 뷰를 참조하려면 어떻게해야합니까?

답변

1

녹색 컨트롤러에 prepareForSegue를 구현해야합니다. 그것은 네비게이션 컨트롤러에 내장 된 세그먼트 (segue) 때문에 인스턴스화 된 직후에 호출됩니다.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(NSURLRequest *)sender { 
    UINavigationController *nav = segue.destinationViewController; 
    self.yellow = nav.topViewController; // yellow is a property pointing to your yellow view controller; 
} 

지금, 당신의 버튼 방식에서, 당신은, 당신이 당신의 논리에 따라 원하는 SEGUE 중 이해

[self.yellow preformSegueWithIdentifier:@"Orange" sender:self]; 
+0

를 호출 할 수 있습니다. 내 문제의 일부는 전혀 나타나지 않는 속성을 얻는 것입니다. 예를 들어 노란색이라는 속성은 어디에 배치해야합니까? Ctrl 키를 누른 상태에서 주 ViewController.h 파일로 드래그하려고하면 아무 것도 수행하지 않습니다. 나는 새 파일을 만들 필요가 있다고 가정하지만 파일을 어디에 둘 것인지 넥타이하는 방법을 모른다. – marisbest2

+0

@ marisbest2, 나는 왜 그것이 작동하지 않았는지 모른다. 이 속성은 녹색 컨트롤러의 .h 또는 .m 파일 (클래스 확장에 있음)에 넣을 수 있습니다. – rdelmar

+0

미안하지만. 이제는 preformSegueWithIdentifier를 호출 할 때 문제가 있습니다. 보낸 사람 : 너무 커서 작업 할 수없는 nav 스택을 밀고 있습니다. – marisbest2

0

버튼 누름에서 호출 할 함수에 다음 코드를 작성합니다.

UIStoryboard* storyboard = [self storyboard]; 
     PlayLocalViewController *yourView = [storyboard instantiateViewControllerWithIdentifier:@"PlayeLocalControllerID"];              //yourViewis the ViewController object 
     yourView.view.frame = self.yourContainerView.bounds; 
           //youContainerView is the containerView property. 
     [self.yourContainerView addSubview:yourView.view]; 
     [self addChildViewController:yourView]; 
     [yourView didMoveToParentViewController:self]; 
관련 문제