2013-05-14 2 views
2

스토리 보드를 사용하여 하위 뷰를 추가하려고합니다. 그것은 올바르게 표시되고 있지만, 아무런 버튼 (IBAction)이 제대로 작동하는 하위보기에, 심지어 빈 코드와 함께, 애플 리케이션은 항상 클릭하면 충돌합니다.스토리 보드로 IBAction 서브 뷰

당신은 그냥 같이보기에 다른보기 컨트롤러의보기를 추가해서는 안 TableViewController.m

... 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Load SubView  
    SubviewViewController *subview = [self.storyboard instantiateViewControllerWithIdentifier:@"SubviewViewController"]; 
    [self.view addSubview:subview.view]; 
} 
... 

SubviewViewController.m

- (IBAction)btnCloseSubview:(id)sender 
{ 
    // Crashes the app when clicked, even empty as it's. 
} 

답변

5

,이 문제에 당신을 얻을 수 있습니다. 내가 그것을 시도했을 때, 때로는 작동하고 때때로 그렇지 않습니다. 적절한 방법은 TableViewController의 아이 뷰 컨트롤러로 컨트롤러를 추가하는 것입니다

SubviewViewController *subview = [self.storyboard instantiateViewControllerWithIdentifier:@"SubviewViewController"]; 
[self addChildViewController: subview]; 
[subview didMoveToParentViewController:self]; 
[self.view addSubview:subview.view]; 
당신은 아마뿐만 아니라 서브 뷰의 뷰의 프레임을 설정해야

(subview.view.frame = self.view.bounds 당신이 경우 동일한 크기가되기를 원한다).

대신보기 컨트롤러가 아닌보기를 xib 파일에 만들고보기의 하위보기로 추가 할 수 있습니다. 이 경우 xib의 파일 소유자를 TableViewController로 설정하고 버튼의 메서드를 TableViewController에 넣습니다.

+0

답장을 보내 주셔서 감사합니다. 이제 코드가 올바르게 작동하고 있습니다. 이 솔루션이 완전히 정확한지 또는 더 좋은 방법인지 묻고 싶습니다. –

+0

@LucianoNascimento, 이것은 코드에서 자식 뷰 컨트롤러를 추가하는 올바른 방법입니다. 당신은 당신이 무엇을 성취하려고하는지 말하지 않았습니다, 이것이 이것이 당신의 목표에 도달하는 최선의 방법이든지 나는 모르겠습니다. 앞에서 말한 것처럼 뷰를 추가하거나 SubviewViewController를 모달 컨트롤러로 제공 할 수 있습니다.이 모든 것은 용도에 따라 다릅니다. – rdelmar

+0

@Luciano Nascimento : 문제가 해결되면 체크 표시를 선택하여 답변을 수락하는 것이 좋습니다. 설명서 참조는 –

2

UIContainerView를 살펴보면 하위보기 컨트롤러를 처리합니다. 상위 뷰 뷰 컨트롤러와 하위 뷰 컨트롤러 사이에 고유 한 통신을 처리해야하지만, 하위 뷰에 적절한 콘센트 및 작업이 설정되어있는 한 하위 뷰 컨트롤러에 필요한 것처럼 작동합니다. 그것의보기 컨트롤러와 스토리 보드.

컨테이너보기에 in-depth information이 더 있습니다.

+0

+1입니다. 그것은 내 마음에 모든 모호성을 지웠다 –

+0

"당신은 부모와 자식보기 컨트롤러 사이에 자신의 통신을 처리해야합니다". 어떻게 말해 줄 수 있니? 나는 다음과 같은 문제를 겪고있다. : (http://stackoverflow.com/questions/32361624/gesture-recognizer-and-ibaction-in-a-uiviewcontroller-child-embedded-in-anothe. 어쨌든 고맙다. – enagra

관련 문제