2012-02-12 3 views
0

UIScrollView를 사용하는 응용 프로그램을 만들어 동적으로 생성 된 사용자 지정보기 컨트롤러의 개수를 결정합니다. 불행히도 아래 코드를 실행하면 빈 화면이 표시됩니다. 또한 UIScrollView에 하위 뷰가 추가 된 직후에 삽입 한 nslog 문은 항상 UIScrollView에 하위 뷰가 없음을 나타냅니다. 나는이 문제에 완전히 당황하고 어떤 도움을 주시면 감사하겠습니다.UIScrollVIew에 사용자 지정보기 컨트롤러를 추가 할 수 없습니다.

- (void)loadView 
{ 
    [super loadView]; 

    scrollView.pagingEnabled = YES; 

    viewControllers = [[NSMutableArray alloc] init]; 

    CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
    CGFloat screenScale = [[UIScreen mainScreen] scale]; 

    CGFloat width = screenBounds.size.width * screenScale; 
    CGFloat height = screenBounds.size.height * screenScale; 

    scrollView.contentSize = CGSizeMake(width * [routes count], height); 

    for(int i = 0; i < [arrayWithDataForViewControllers count]; i++) 
    { 
     ViewController *controller = [[ViewController alloc] init]; 

     controller.view.frame = CGRectMake(width*i, 20, width, height); 

     [scrollView addSubview:controller.view]; 
     NSLog(@"SUBVIEWS %d", [[scrollView subviews] count]); 
     [viewControllers addObject:controller]; 
    } 
} 
+0

loadView 함수에서 scrollView가 초기화되지 않은 경우가 있습니다. 이것이 바로 하위 뷰에서 0을 보는 이유입니다. –

+0

당신이 옳았습니다. viewDidLoad 코드를 옮겼지만 문제를 해결하지 못했습니다. – InsaneOstrich

+0

UIScrollView를 초기화하는 것은 무엇입니까? 펜촉을 사용하는 경우 IBOutlet을 연결해야합니다. 그렇지 않다면 모든 코드를 다시 loadView로 옮기고 명시 적으로/initWithFrame을 UIScrollView에 할당해야합니다. –

답변

0

ViewController의 뷰를 스크롤 뷰 외부에서 확인하십시오. 뷰 속성이 nil 일 가능성이 있습니다.

+0

ViewControllers의 뷰를 검사했는데 그것들이 nil이 아닙니다. :( – InsaneOstrich

관련 문제