UIPageViewController
初めて使います。もちろん、それは iOS5 であり、私は ARC に慣れています。ストーリーボードは使用していません。
私が見るすべての断片的な例では、UIPageViewController
が画面を「所有」することはありません。それは常に他のView Controllerの子です。これは要件ですか?で一般的に行われているように、アプリのルートコントローラーにしたいと思いUINavigationController
ます。プログラムですべてを設定しようとしていますが、取得できるのはコンテンツのない空のページ ビュー コントローラーだけです。
アプリの開始方法は次のとおりです (ここのすべてのコードは、アプリのデリゲート クラスにあります)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self configureLoggers];
[self applyAppearanceProxySettings];
[self configureDataStore];
[self configureNavigationController];
[self configurePageController]; // <-- this is where we do the page view controller setup, shown next.
self.window.rootViewController = self.pageController;
[self.window makeKeyAndVisible];
log4Info(@"Application completed launching.");
return YES;
}
そして、上記のコードで言及されているメソッドは、Page View Controller のセットアップを行います。
- (void)configurePageController {
CCFrontCoverViewController *frontCoverViewController = [[CCFrontCoverViewController alloc] initWithNibName:nil bundle:nil];
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:UIPageViewControllerSpineLocationMin]
forKey:UIPageViewControllerOptionSpineLocationKey];
self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:options];
self.pageController.delegate = self;
self.pageController.dataSource = self;
self.pageController.view.backgroundColor = [UIColor redColor]; // So we know we're missing content because red shows through.
NSArray *pageViewControllers = [NSArray arrayWithObjects:frontCoverViewController, self.navigationController, nil];
[self.pageController setViewControllers:pageViewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
}
また、2 つのデータ ソース コールバック メソッドにログを記録しましたが、呼び出されることさえありません。
これを実行すると、空白の赤い画面が表示されます。繰り返しますが、ストーリーボードは関係ありません。私は何が欠けていますか?