2011-11-29 8 views
3

내 스토리 보드 파일이 내 애플 리케이션에 있고 다른 한 ViewController 한 ViewController간에 전환하고 싶습니다. AppDelegate의 메서드를 호출하는 첫 번째 ViewController의 단추 누르기에 대한 응답으로 IBAction을 연결했습니다. 이 신호가 AppDelegate 메서드에 도달했는지 확인했습니다.2 스토리 보드 간의 전환

여기는 AppDelegate에있는 관련 방법이지만 전환이 발생하지 않습니다. 아무도 왜 저에게 이야기 할 수 있습니까, 아니면 2 스토리 보드를 가지고있는 바보 같은 생각입니까?

답변

8

-(void) presentSecondViewController { 

UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UIViewController* mainViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"main_viewcontroller"]; 

UIStoryboard* secondStoryboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil]; 
UIViewController* secondViewController = [secondStoryboard instantiateViewControllerWithIdentifier:@"second_viewcontroller"]; 

[mainViewController presentViewController: secondViewController animated:YES completion: NULL]; 

}는 첫 번째 스토리의 초기 뷰 컨트롤러의 두 번째 인스턴스를 생성한다. 이 인스턴스는 이미 표시된 것과 다르기 때문에 화면에 표시되지 않으므로 두 번째보기 컨트롤러가 표시되지 않습니다. 뷰 컨트롤러의 인스턴스가 이미 표시되어야합니다. 가장 좋은 방법은 구현을

-(void) presentSecondViewControllerFromViewController:(UIViewController *)sourceController 
{ 
    UIStoryboard* secondStoryboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil]; 
    UIViewController* secondViewController = [secondStoryboard instantiateViewControllerWithIdentifier:@"second_viewcontroller"]; 

    [sourceController presentViewController: secondViewController animated:YES completion: NULL]; 
} 

으로 변경하고 버튼이 포함 된보기 컨트롤러를 전달하여 호출하는 것입니다.

+0

안녕하세요, TriPhoenix, 정말 고마워요, 나는이 작품이 매력처럼보고 드리겠습니다. 별도의 스토리 보드와 관련 코드를 다른 프로젝트에 포함시키고 이러한 방식으로 재사용 할 수 있습니다. –