내 프로젝트에서 페이지 스크롤 기능을 구현하려고합니다. 스토리 보드 (및 ARC)와 함께 iOS 5 용으로 개발합니다. 이것은 내가 내 스토리 보드에서 한 것입니다 :viewController.view.superview가 0입니다.
(왼쪽) 첫 번째의 ViewController가있는 ScrollView와 pageControl 있습니다. 그 클래스는 GlobalDashboardViewController
이며, DashboardViewController
(상속은 UIViewController
)에서 상속됩니다. 나머지 두 컨트롤러는 식별자가있는 간단한 UIViewController입니다 (MainDashboard 및 SecondaryDashboard). GlobalDashboardViewController.m
에서
는 childViewControllers를 얻을 수있는 단지의 viewDidLoad,이 :
- (void)viewDidLoad
{
[super viewDidLoad];
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"MainDashboard"]];
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"SecondaryDashboard"]];
}
DashboardViewController.m
는 조금 더 복잡하다. 여기에 가장 중요한 방법은 다음과 같습니다
- (void)viewDidLoad
{
// Calling the viewDidLoad above to populate the childViewControllers array
[super viewDidLoad];
[self.scrollView setPagingEnabled:YES];
[self.scrollView setScrollEnabled:YES];
[self.scrollView setShowsHorizontalScrollIndicator:NO];
[self.scrollView setShowsVerticalScrollIndicator:NO];
[self.scrollView setDelegate:self];
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.pageControl.currentPage = 0;
_page = 0;
[self.pageControl setNumberOfPages:[self.childViewControllers count]];
UIViewController *viewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
if (viewController.view.superview != nil) {
[viewController viewWillAppear:animated];
}
self.scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * [self.childViewControllers count], scrollView.frame.size.height);
}
이 다른 방법의 많음,하지만 난 여기에 내 문제이기 때문에 그들이 관련성 생각하지 않는다 : 응용 프로그램의 출시가, 그리고 내가 보는있는 ScrollView와 pageControl . 배경은 어두운 회색입니다. GlobalDashboard viewController에서 설정했습니다. 올바르게 스크롤 할 수 있으며 pageControl이 업데이트됩니다. 하지만 다른 견해는 보이지 않습니다. 내가 viewWillAppear
에서 경우에 중단 점을 배치하고 viewController
볼 때, (나는 스토리 보드의 컨트롤러에 준 이름 인 Dashboard Page 1
) 올바른 이름의,하지만 당신이 할 수의 _view
속성은 을 0x00000000 보여줍니다 여기 참조 :
그래서, 나는 결코 실제로 viewControllers을 보여주는 마법의 일부가 일어나는 곳이다는 경우 내에서 얻을 ...
제 작품은 여기에서 찾을 수있는 예제 프로젝트를 기반으로합니다 : PageViewController. 나는 그것을 실행할 때 완벽하게 작동합니다. 왜 내가 내 프로젝트에서 제대로 작동하지 않는지 전혀 모른다.
아이디어가 있으십니까?
감사
답장을 보내 주셔서 감사합니다. 글쎄, 나도 할 수 있지만 내 실수는 ** ** 실제로 loadScrollViewWithPage **를 호출하는 것을 잊었다 : * viewWillAppear에서 ... 나는 viewWillAppear *에 너무 집중했다. 나를 올바른 방향으로 가리키기위한 많은 것들! – rdurand