私は s を学習しようとしてUIPageViewController
いて、解決できない問題にぶつかりました。これは私がやろうとしたことです:
- 手順:
- StoryBoard に 2 つのビュー コントローラーとページ ビュー コントローラーを作成しただけです。
- 次に、ファイルの所有者に、およびそれ自体
PageViewController
として動作するコードを追加しました。dataSource
delegate
- 私が走ったとき、物事はうまくいきました。
- いくつかのボタンとテキスト フィールドを 2 番目のビュー コントローラーに追加しました。
- 私は走った、よく働いた。
- 次に、テキスト ビューを 2 番目のビュー コントローラーに追加して実行しました。テキスト ビュー内に何かを書き込もうとすると、ページ コントロールがジッターし、最初のビュー コントローラーに移動しました。
誰もこれを経験したことがありますか?
@interface AMPageViewController : UIPageViewController <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
@end
実装:
#import "AMPageViewController.h"
@interface AMPageViewController ()
{
UIViewController *mainController;
UIViewController* socController;
}
@end
@implementation AMPageViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle: nil];
mainController = (UIViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"First"];
socController = (UIViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"Second"];
[self setViewControllers:@[mainController]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
self.dataSource = self;
self.delegate = self;
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
if (viewController == socController )
return mainController;
else return nil;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
if (viewController == mainController )
return socController;
else return nil;
}
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
return 2;
}
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
return 0;
}
@end