如何通过在ios中使用pagecontroller将一个页面传输到另一个页面

时间:2016-02-12 07:08:07

标签: ios objective-c-blocks

之前已经问过这个问题,但我在这些问题上遇到了困难。 因为我创建了页面控制器,并且在每个页面中都有一个图像。但我想要其他页面不是图像。我试过这个用于图像但是页面混乱。

    - (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *button=[[UIBarButtonItem alloc]initWithTitle:@"Go" style:UIBarButtonItemStylePlain target:self action:@selector(Go)];
    UIBarButtonItem *button1=[[UIBarButtonItem alloc]initWithTitle:@"Go" style:UIBarButtonItemStylePlain target:self action:@selector(Go)];
    [self.navigationItem setRightBarButtonItem:button];
    [self.navigationItem setLeftBarButtonItem:button1];
    self.navigationItem.title=@"Navigation";
   //Scroll View

    imgarray =[[NSArray alloc]initWithObjects:@"images.jpg",@"images.jpg",@"images.jpg",@"images.jpg",@"images.jpg", nil];
    for(int i=0;i<[imgarray count];i++)
    {
        CGRect frame;
        frame.origin.x=[UIScreen mainScreen].bounds.size.width*i;
        frame.origin.y=0;
        frame.size=[UIScreen mainScreen].bounds.size;
        UIImageView *imageview=[[UIImageView alloc]initWithFrame:frame];
        imageview.image=[UIImage imageNamed:[imgarray objectAtIndex:i]];
        [self.Scrollview addSubview:imageview];
    }

       // Do any additional setup after loading the view from its nib.
    Scrollview.contentSize=CGSizeMake([UIScreen mainScreen].bounds.size.width*[imgarray count],Scrollview.frame.size.height );
}


-(void)Go
{
    BAR2 *bar=[[BAR2 alloc]initWithNibName:@"BAR2" bundle:nil];
    [self.navigationController pushViewController:bar animated:YES];
}


#pragma mark-UIScrollView Delegate
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat pageWidth=self.Scrollview.frame.size.width;
    int page=floor((self.Scrollview.contentOffset.x-pageWidth/2)/pageWidth)+1;
    self.pagecontrol.currentPage=page;
}

现在我有困惑,我已经为每个图像创建了数组,现在我的问题是为新页面创建的内容,或者可能有不同的方式。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

You can take Three or viewcontrollers and Give them approipiate Storyboard id !!!! have Look At My code !! 

- (void)viewDidLoad {
    [super viewDidLoad];
   ViewController1 *Chart1 = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];
    ViewController2 *Chart2 ;
    ViewController3 *Chart3;

    NSArray *controllersArray =[NSArray arrayWithObjects:Chart1, Chart2, Chart3,nil];


     self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
    self.pageViewController.dataSource=self;
    self.pageViewController.delegate=self;

   [self.pageViewController setViewControllers:controllersArray direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];


  self.pageViewController.view.frame = CGRectMake(0, 72, self.view.frame.size.width, self.view.frame.size.height - 30);

    [self addChildViewController:self.pageViewController];
    [self.view addSubview:self.pageViewController.view];
    [self.pageViewController didMoveToParentViewController:self];
}


- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
      viewControllerBeforeViewController:(UIViewController *)viewController
{


    if ([viewController isKindOfClass:[ViewController3 class]]) {


        ViewController2 *pvc = [self.storyboard instantiateViewControllerWithIdentifier:@"sec"];
                return pvc;
}
    else if([viewController isKindOfClass:[ViewController2 class]]) {


        ViewController1 *pvc = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];
             return pvc;

    }
   else
   {
       return nil;
   }
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
       viewControllerAfterViewController:(UIViewController *)viewController
{
    if ([viewController isKindOfClass:[ViewController1 class]])
    {

        ViewController2 *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"sec"];


         return tvc;
    }

    else if ([viewController isKindOfClass:[ViewController2 class]])
    {

        ViewController3 *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"third"];


        return tvc;
    }
else
{
    return nil ;


}

}