我是UIPageViewController
第一次使用。当然是 iOS5,我对 ARC 很满意。我没有使用故事板。
在我看到的所有零散示例中,UIPageViewController
从不“拥有”屏幕。它始终是其他视图控制器的子级。这是一个要求吗?我想让它成为我的应用程序的根控制器,就像通常使用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;
}
上面代码中提到的那个方法,它为页面视图控制器进行了设置:
- (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];
}
我还将日志记录在两个数据源回调方法中,它们甚至都没有被调用。
当它运行时,我只是得到一个空白的红色屏幕。同样,没有涉及故事板。我错过了什么?