我是IOS的新手,所以请帮助我指导这个问题。

我正在使用三个视图来打开通过scroll viewpagination连接的三个不同的图像。我正在使用XIB获取分页逻辑和滚动视图。

我面临两个问题:


我无法使页面指示器以不同的视图显示在屏幕上
我发现到达第三个视图后很难移到下一个视图控制器。


我正在关注Ray Wanderlich的tutorial。当用户尝试在到达最后一页时滑动到下一页时,我很惊讶在哪里添加代码以移至下一个视图控制器。

我的代码是这样的:

- (void)viewDidLoad {
[super viewDidLoad];


   self.navigationController.navigationBarHidden =YES;
// Set up the image we want to scroll & zoom and add it to the scroll view
self.pageImages = [NSArray arrayWithObjects:
                   [UIImage imageNamed:@"IMAGE1.png"],
                   [UIImage imageNamed:@"IMAGE2.png"],
                   [UIImage imageNamed:@"IMAGE3.png"],
                  // [UIImage imageNamed:@"photo4.png"],
                  // [UIImage imageNamed:@"photo5.png"],
                   nil];

NSInteger pageCount = self.pageImages.count;

// Set up the page control
self.pageControl.currentPage = 0;
self.pageControl.numberOfPages = pageCount;

// Set up the array to hold the views for each page
self.pageViews = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < pageCount; ++i) {
    [self.pageViews addObject:[NSNull null]];
}


}

- (void)loadVisiblePages {
// First, determine which page is currently visible
CGFloat pageWidth = self.scrollView.frame.size.width;
NSInteger page = (NSInteger)floor((self.scrollView.contentOffset.x * 2.0f + pageWidth) / (pageWidth * 2.0f));

// Update the page control
self.pageControl.currentPage = page;

NSLog(@"One %d",page);

if (page == 2) {

    page = 3;

    if(page == 3){
         NSLog(@"Working");

        SignInViewController *view = [[SignInViewController alloc]initWithNibName:@"SignInViewController" bundle:nil];
        [self.navigationController pushViewController:view animated:NO];
        [view release];
        view=nil;
    }

}

// Work out which pages we want to load
NSInteger firstPage = page - 1;
NSInteger lastPage = page + 1;

// Purge anything before the first page
for (NSInteger i=0; i<firstPage; i++) {
    [self purgePage:i];
}


    // Load pages in our range
for (NSInteger i=firstPage; i<=lastPage; i++) {
    [self loadPage:i];


}


    // Purge anything after the last page
for (NSInteger i=lastPage+1; i<self.pageImages.count; i++) {
    [self purgePage:i];

}


}

我试图将视图控制器的行添加为:

SignInViewController *view = [[SignInViewController alloc]initWithNibName:@"SignInViewController" bundle:nil];
            [self.navigationController pushViewController:view animated:NO];
            [view release];
            view=nil;


但这会使第三张图片消失,并且一旦用户尝试从第二张图片滑动到第三张图片,就将用户直接带到我的SignInView控制器页面。

我应该怎么做才能使用户看到第三个图像,然后检测滑动并移动到带有动画的下一个视图控制器。我尝试了滑动动画和检测,但对我而言不起作用。
我需要在哪里编码以及如何提供帮助!

最佳答案

我认为回复可能太晚了,但也许您仍然感到震惊并需要帮助,那么以下是第二个问题的解决方案:

对第2部分的回答

尝试添加此代码

if (page == 2) {

    page = 3;

    if(page == 3){

        NSLog(@"content ofset--  %f",self.scrollView.contentOffset.x);

        if (self.scrollView.contentOffset.x>=700)
        {
            SignIn2ViewController *view = [[SignIn2ViewController alloc]initWithNibName:@"SignIn2ViewController" bundle:nil];
            [self.navigationController pushViewController:view animated:NO];
            [view release];
            view=nil;
        }

    }
}


您可以根据需要检查偏移量的值。
也许这对你有用。

并回答第1部分。->再次尝试阅读Ray Wanderlich教程并检查XIB的设置,您可能已经跳过了要在插座或页面指示器上添加的一些信息。

希望对你有效。

10-08 17:14
查看更多