ios 如何使用 pagecontroller 将一个页面转移到另一个页面
how to transfer one page to other by using pagecontroller in ios
这个问题以前有人问过,但我很难回答。
因为我已经创建了 pagecontroller 并且在每个页面中都有一个图像。但我想要其他页面而不是图像。我已经为图像尝试过这个,但对页面感到困惑。
- (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;
}
现在我对为每个图像创建数组感到困惑现在我的问题是为新页面创建什么或者可能有不同的方式。
提前致谢。
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 ;
}
}
这个问题以前有人问过,但我很难回答。 因为我已经创建了 pagecontroller 并且在每个页面中都有一个图像。但我想要其他页面而不是图像。我已经为图像尝试过这个,但对页面感到困惑。
- (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;
}
现在我对为每个图像创建数组感到困惑现在我的问题是为新页面创建什么或者可能有不同的方式。
提前致谢。
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 ;
}
}