Ios 在UIPageViewController中加载多视图控制器-滑动显示空白屏幕
我正在UIPageViewController中加载多个UIViewController,每个UIViewController都有自己的导航栏。我已经为UIPageViewController实现了所有必需的数据源和委托方法,并且它显示正确 但是,当我水平滚动视图控制器时,更常见的情况是,我看到的是一个白色的空白屏幕,而不是视图控制器。下面是我的代码 这里有什么不对劲的线索吗 PS:我尝试在我的Ios 在UIPageViewController中加载多视图控制器-滑动显示空白屏幕,ios,objective-c,cocoa-touch,uiviewcontroller,uipageviewcontroller,Ios,Objective C,Cocoa Touch,Uiviewcontroller,Uipageviewcontroller,我正在UIPageViewController中加载多个UIViewController,每个UIViewController都有自己的导航栏。我已经为UIPageViewController实现了所有必需的数据源和委托方法,并且它显示正确 但是,当我水平滚动视图控制器时,更常见的情况是,我看到的是一个白色的空白屏幕,而不是视图控制器。下面是我的代码 这里有什么不对劲的线索吗 PS:我尝试在我的viewControllerForRequestID方法中删除IF条件,并每次返回一个新的控制器。这是
viewControllerForRequestID
方法中删除IF条件,并每次返回一个新的控制器。这是可行的,但我最终发现一个视图控制器在分页中显示了两次
- (UIViewController *)pageViewController:(UIPageViewController *)iPageViewController viewControllerBeforeViewController:(UIViewController *)iViewController {
[self.pageControl setCurrentPage:self.selectedRequestIndex];
if (self.selectedRequestIndex == 0) {
return nil;
}
NSUInteger aNewSelectedRequestIndex = self.selectedRequestIndex - 1;
NSString *aPreviousRequestID = [self.paginationRequestIDList[aNewSelectedRequestIndex] stringValue];
self.selectedRequestIndex = aNewSelectedRequestIndex;
self.selectedRequestID = aPreviousRequestID;
return [self viewControllerForRequestID:self.selectedRequestID];
}
- (UIViewController *)pageViewController:(UIPageViewController *)iPageViewController viewControllerAfterViewController:(UIViewController *)iViewController {
[self.pageControl setCurrentPage:self.selectedRequestIndex];
if (self.selectedRequestIndex == NSNotFound || self.selectedRequestIndex >= self.paginationRequestIDList.count - 1) {
return nil;
}
NSUInteger aNewSelectedRequestIndex = self.selectedRequestIndex + 1;
NSString *aNextRequestID = self.paginationRequestIDList[aNewSelectedRequestIndex];
self.selectedRequestIndex = aNewSelectedRequestIndex;
self.selectedRequestID = aNextRequestID;
return [self viewControllerForRequestID:self.selectedRequestID];
}
- (MyNavigationViewController *)viewControllerForRequestID:(id)iRequestID {
NSString *aRequestID = iRequestID;
// Safe check to avoid numbers in request ID
if (![iRequestID isKindOfClass:[NSString class]]) {
aRequestID = [iRequestID stringValue];
}
@synchronized (self) {
if ([self.viewControllers containsObjectForKey:iRequestID]) {
MyNavigationViewController *aNavigationController = self.viewControllers[iRequestID];
return aNavigationController;
}
MyDataModel *aRequestData = self.savedRequestData[iRequestID];
MyDataModelController *aRequestInfoController = [[MyDataModelController alloc] initWithRequestData:aRequestData];
aRequestInfoController.delegate = self;
MyNavigationViewController *aNavigationController = [[MyNavigationViewController alloc] initWithRootViewController:aRequestInfoController];
[self.viewControllers setObject:aNavigationController forKey:iRequestID];
return aNavigationController;
}
}
我也面临同样的问题。你找到这个问题的解决方案了吗?在我的第一个子视图控制器之前,我有一个空白视图控制器,我可以滑动到我的第一个子视图控制器的左侧。我面临着同样的问题。你找到解决这个问题的办法了吗?