【发布时间】:2010-07-17 11:42:05
【问题描述】:
我正在为我正在开发的程序寻求帮助。基本上,它包含两个视图。第一个视图有一个按钮和一个与之相关的操作将我带到我的下一个视图,其中有一个三个页面的滚动视图(如苹果给出的 PageControl 示例。)我正在使用导航控制器从第一个推送视图查看到第二个视图。但是在推送时,我无法滚动页面或使用页面控制或任何东西。它只是一个正常的视图。该代码与 pageControl 代码相同,并且可以作为单独的模块正常工作。但是,当我想将此 pageControl 代码与第一个视图和单击按钮集成时,它不起作用。请帮忙。
//这个函数是针对rootviewcontroller中的一个按钮设置的动作。
-(IBAction) viewScrollPages:(id)sender{
UIViewController *controller = [[MyViewController alloc] initWithPageNumber:0];
[self.navigationController pushViewController:controller animated:NO];
[controller release];
}
- (id)initWithPageNumber:(int)page {
if (self = [super initWithNibName:@"MyViewController" bundle:nil]) {
pageNumber = page;
}
return self;
}
- (void)viewDidLoad {
NSMutableArray *controllers = [[NSMutableArray alloc] init];
for (unsigned i = 0; i < kNumberOfPages; i++) {
[controllers addObject:[NSNull null]];
}
self.viewControllers = controllers;
[controllers release];
// a page is the width of the scroll view
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height);
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;
pageControl.numberOfPages = kNumberOfPages;
pageControl.currentPage = 0;
// pages are created on demand
// load the visible page
// load the page on either side to avoid flashes when the user starts scrolling
[self loadScrollViewWithPage:0];
[self loadScrollViewWithPage:1];
pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1];
self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber];
[super viewDidLoad];
}
【问题讨论】:
-
一些代码可能有助于我们了解您的问题。将代码发布到您创建的位置,然后在该视图控制器中推送应包含滚动视图和
viewDidLoad的视图控制器... -
我已经添加了代码。它与苹果 developer.apple.com/iphone/library/samplecode/PageControl/… 给出的 pageControl 示例的代码基本相同。我需要的修改是,不是在应用程序启动时立即显示滚动页面,而是要求它仅在单击按钮后显示。感谢您的答复。非常感谢。
-
我已经添加了代码。与苹果developer.apple.com/iphone/library/samplecode/PageControl/…给出的Pagecontrol示例相同。我需要的唯一修改是,滚动页面不是在应用程序启动时立即出现,而是应该在单击按钮或其他内容之后出现。感谢您的回复,非常感谢。
标签: iphone uiscrollview uipagecontrol uiscrollviewdelegate