我是使用UIPageViewController
的新手,無法在Objective-C
中找到很好的解釋。我試着自己實現一個,但它只在啓動時顯示黑屏。我究竟做錯了什麼?UIPageView實現黑屏
我有一個ViewController在IB中設置,它是初始的ViewController,還有兩個其中有兩個故事板ID在下面,只是坐在那裏,沒有連接任何東西。
這裏是我的初始視圖控制器代碼:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
[self addChildViewController:self.pageViewController];
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
UIViewController *vc1 = [self.storyboard instantiateViewControllerWithIdentifier:@"vc1"];
UIViewController *vc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"vc2"];
viewControllers = [[NSArray alloc] initWithObjects:vc1,vc2, nil];
[self.pageViewController setViewControllers:@[vc1] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
}
-(UIViewController *)viewControllerAtIndex:(NSUInteger)index
{
return viewControllers[index];
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController
{
NSUInteger currentIndex = [viewControllers indexOfObject:viewController];
--currentIndex;
currentIndex = currentIndex % (viewControllers.count);
return [viewControllers objectAtIndex:currentIndex];
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerAfterViewController:(UIViewController *)viewController
{
NSUInteger currentIndex = [viewControllers indexOfObject:viewController];
++currentIndex;
currentIndex = currentIndex % (viewControllers.count);
return [viewControllers objectAtIndex:currentIndex];
}
-(NSInteger)presentationCountForPageViewController:
(UIPageViewController *)pageViewController
{
return viewControllers.count;
}
-(NSInteger)presentationIndexForPageViewController:
(UIPageViewController *)pageViewController
{
return 0;
}
您可以檢查了這一點。 – Ro4ch
我看不到你已經添加你的pageViewController到屏幕的點 –
它在這裏:[self addChildViewController:self.pageViewController]; –