2016-10-05 21 views
1

我需要水平添加一个按钮到UIPageViewController中的页面控件。我已经将我的pageviewcontroller作为子视图添加到ViewController中,默认情况下即时获得页面控制。现在我想添加一个按钮,任何人都可以用任何方式添加按钮?水平向页面控件添加按钮

在此先感谢!

_pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll 
                  navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal 
                     options:nil]; 

    self.view.backgroundColor = [[UIColor blackColor]colorWithAlphaComponent:0.5]; 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName: 
           @"Main" bundle:[NSBundle mainBundle]]; 
    UIViewController *p1 = [storyboard instantiateViewControllerWithIdentifier:@"First"]; 
    UIViewController *p2 = [storyboard 
          instantiateViewControllerWithIdentifier:@"Second"]; 
    UIViewController *p3 = [storyboard 
          instantiateViewControllerWithIdentifier:@"Third"]; 
    UIViewController *p4 = [storyboard 
          instantiateViewControllerWithIdentifier:@"Fourth"]; 
    _Array = @[p1,p2,p3,p4]; 
    _pageViewController.dataSource = self; 
    _pageViewController.delegate = self; 
    [_pageViewController setViewControllers:@[_Array[0]] 
            direction:UIPageViewControllerNavigationDirectionForward 
            animated:NO 
           completion:nil]; 

    [_pageViewController willMoveToParentViewController:self]; 
    [self addChildViewController:_pageViewController]; 
    [self.view addSubview:_pageViewController.view]; 
    [self.view sendSubviewToBack:self.pageViewController.view];  
    [_pageViewController didMoveToParentViewController:self]; 
+1

显示你到目前为止所尝试的内容。 – vaibhav

+0

与页面控制相同的一行我想要使用一个按钮。 – meowsush

+0

你可以使用'collectionView'来代替'pageViewController'来实际添加VC .. – vaibhav

回答

1

我相信这就是你要找的。他详细解释了如何在页面视图控制器视图的顶部添加按钮。您可以在添加页面视图控制器后执行此操作,您可以使用sendSubviewToBack方法确保按钮保留在前景中,同时您可以在页面视图控制器的不同视图控制器之间滑动。看一看here

+0

抱歉,当我尝试您的代码时,我看不到按钮 – meowsush

+0

您是否已将页面视图控制器发送回去? – HarmVanRisk

+0

[self.view sendSubviewToBack:self.pageViewController.view]; 是的,但无法查看按钮 – meowsush

0

你可以提取页面控制的视图,然后你可以做任何你想做的事情。下面是提取页面控件视图的代码:

NSArray * subviews = self.pageController.view.subviews;

for (int i=0; i<[subviews count]; i++) { 
    if ([[subviews objectAtIndex:i] isKindOfClass:[UIPageControl class]]) { 
     self.pageControl = (UIPageControl *)[subviews objectAtIndex:i]; 
    } 
} 
UIView *pageControlBaseView = [[UIView alloc] initWithFrame:CGRectMake(0,60,100, 40)]; 
[pageControlBaseView addSubview:self.pageControl]; 
self.pageControl.pageIndicatorTintColor = [UIColor redcolor]; 
self.pageControl.currentPageIndicatorTintColor = [UIColor greencolor]; 
[self.view addSubview:pageControlBaseView]; 

请让我知道如果你需要更清晰。