2

응용 프로그램을 개발 중이며 iOS5 스토리 보드를 사용하고 있습니다. 기본적으로 내가 가지고있는 UITabBarController는 일부 UIViewController와 UISplitViewController를 포함하는 루트 컨트롤러입니다. 내가하고 싶은 일은 UISplitViewController의 DetailController로 UIPageViewController를 사용하는 것입니다. 문제는 UIPageViewController가 뷰 컨트롤러를 표시하지 않지만 검정색 화면을 표시한다는 것입니다. 내가 뭘하면 DetailController의있는 viewDidLoad 메소드에서이 내용 뷰 컨트롤러를 초기화하고 지시로 할당하는 것입니다 : 실수입니다 iOS5 스토리 보드 UIPageViewController

[self setViewControllers:self.pagesViewControllerArray direction:UIPageViewControllerNavigationOrientationHorizontal animated:NO completion:nil];

은 그래서 나는 알아낼 수 없습니다.

- (void)viewDidLoad{ 

    self.dataSource = self; 
    self.delegate = self; 

    self.page1ViewController = [[Page1ViewController alloc] initWithNibName:@"Page1ViewController" bundle:nil]; 
    self.page2ViewController = [[Page2ViewController alloc] init]; 

    self.pagesViewControllerArray = [NSArray arrayWithObjects:self.page1ViewController, self.page2ViewController, nil]; 

    [self setViewControllers:self.pagesViewControllerArray direction:UIPageViewControllerNavigationOrientationHorizontal animated:NO completion:nil]; 

} 

내가 관련된 자사의 펜촉과의 ViewController과 그 전망을 감상 할 수있는의 ViewController 동적으로로드 모두를 사용하려고하지만 그것은 작동하지 않습니다 :

의 viewDidLoad 방법은 다음과 같다.

어떤 도움

정말 감사하겠습니다. 감사합니다.

답변

0

먼저 viewDidLoad가 호출되고 있는지 확인하십시오. 인스턴스가 초기화 될 수있는 많은 방법이 있으며 각 옵션을 사용할 때 확실하지 않습니다. initWithNibName을 사용하면 올바르게 기억하면 viewDidLoad가 호출되지 않습니다. ...가 호출되는 경우 디버거 콘솔에 표시됩니다

NSLog(@"viewDidLoad: %@", NSStringFromClass([self class])); 

을하는 방법 당신이 같은 NSLog 문을 추가 할 수 있습니다이라고 확인하십시오. initWithNibName 메소드를 추가하여 해당 메소드가 호출되는지 확인할 수도 있습니다.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     NSLog(@"initWithNibName: %@", NSStringFromClass([self class])); 
    } 
    return self; 
} 

내가 예상 한대로 스토리 보드가 작동하지 않는 것으로 나타났습니다. 내가 컨테이너 뷰를 사용하기 시작했다. 그 (것)들에 관하여 공상은 아무것도 없다. 그것들은 표준 UIViewController 주변의 래퍼 인 뷰 내부에 배치 할 수있는 시각적 요소 일 뿐이며 디자인 화면은 다른 뷰에 배치 한 컨테이너 뷰와 동일한 차원을 가진 관련 뷰를 보여줍니다. 그런 다음 세부 정보를 관리 할 수 ​​있습니다. 부모 뷰 컨트롤러로 초기화를 처리해야하는 경우 prepareForSegue 메서드를 사용합니다. 컨테이너 뷰 (일반적으로 볼 수있는 푸시 세그먼트가 아님)에 대한 임베드 세그먼트의 이름을 설정해야하며, 발생하면 컨테이너 뷰의 내부에있는 포함 된 뷰 컨트롤러 인 destinationViewController에 액세스 할 수 있습니다. 그것을 파악하기 위해 약간의 수정이 필요할 수 있습니다.

주최자의 문서 탭에서 UIPageViewController를 찾아보십시오. 왼쪽 열의 맨 아래에 유용한 샘플 프로젝트 목록이 있습니다.

관련 문제