私が開発しているプログラムのヘルプを探しています。基本的に、2 つのビューが含まれています。最初のビューにはボタンがあり、それに関連するアクションにより、3 ページのスクロール ビューがある次のビューに移動します (Apple が提供する PageControl サンプルのように)。ナビゲーション コントローラーを使用して、最初のビューからビューをプッシュしています。 2 番目のビューを表示します。しかし、プッシュすると、ページをスクロールしたり、ページコントロールなどを使用したりできません。それはちょうど正常なビューになります。コードは 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];
}