Ich bin neu zu verwenden UIPageViewController
und konnte keine gute Erklärung dafür in Objective-C
finden. Ich habe versucht, eine selbst zu implementieren, aber es zeigt nur einen schwarzen Bildschirm beim Start. Was mache ich falsch?UIPageView Implementierung schwarzer Bildschirm
Ich habe einen ViewController in IB eingerichtet, der der ursprüngliche ViewController ist, und zwei andere, die die zwei Storyboard-IDs unten haben und nur dort sitzen, ohne mit irgendetwas verbunden zu sein.
Hier ist mein Code für die erste Viewcontroller:
- (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;
}
Sie können check this out - https://github.com/mindsnacks/MSPageViewController Vielleicht helfen. – Ro4ch
Ich kann den Punkt nicht sehen, wo Sie Ihren PageViewController zum Bildschirm hinzugefügt haben –
Es ist hier: [self addChildViewController: self.pageViewController]; –