之前已经问过这个问题,但我在这些问题上遇到了困难。 因为我创建了页面控制器,并且在每个页面中都有一个图像。但我想要其他页面不是图像。我试过这个用于图像但是页面混乱。
- (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;
}
现在我有困惑,我已经为每个图像创建了数组,现在我的问题是为新页面创建的内容,或者可能有不同的方式。
提前谢谢。
答案 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 ;
}
}