Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UIPageViewController中加载多视图控制器-滑动显示空白屏幕_Ios_Objective C_Cocoa Touch_Uiviewcontroller_Uipageviewcontroller - Fatal编程技术网

Ios 在UIPageViewController中加载多视图控制器-滑动显示空白屏幕

Ios 在UIPageViewController中加载多视图控制器-滑动显示空白屏幕,ios,objective-c,cocoa-touch,uiviewcontroller,uipageviewcontroller,Ios,Objective C,Cocoa Touch,Uiviewcontroller,Uipageviewcontroller,我正在UIPageViewController中加载多个UIViewController,每个UIViewController都有自己的导航栏。我已经为UIPageViewController实现了所有必需的数据源和委托方法,并且它显示正确 但是,当我水平滚动视图控制器时,更常见的情况是,我看到的是一个白色的空白屏幕,而不是视图控制器。下面是我的代码 这里有什么不对劲的线索吗 PS:我尝试在我的viewControllerForRequestID方法中删除IF条件,并每次返回一个新的控制器。这是

我正在UIPageViewController中加载多个UIViewController,每个UIViewController都有自己的导航栏。我已经为UIPageViewController实现了所有必需的数据源和委托方法,并且它显示正确

但是,当我水平滚动视图控制器时,更常见的情况是,我看到的是一个白色的空白屏幕,而不是视图控制器。下面是我的代码

这里有什么不对劲的线索吗

PS:我尝试在我的
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;
    }
}

我也面临同样的问题。你找到这个问题的解决方案了吗?在我的第一个子视图控制器之前,我有一个空白视图控制器,我可以滑动到我的第一个子视图控制器的左侧。我面临着同样的问题。你找到解决这个问题的办法了吗?