我有一个页面控制器,里面有三个页面或视图控制器。在我调用切换页面的方法(下面的帖子不好)并尝试滑动到另一个页面后,动画运行速度非常缓慢且不连贯。大多数情况下,视图控制器不适合屏幕的框架也会混淆视图。我认为不是实际切换页面而是再次创建一个新的实例,但我似乎无法理解为什么它会如此慢,因为在我的普通代码中我根据需要实例化每个视图并且它不会慢当我滑动切换视图时向下
(滑动到下一个视图也需要大约5秒钟)
当我更改视图时,我在页面视图控制器中重新排序“viewControllerBeforeViewController”方法,以便在我滑动时视图的顺序保持不变。
更新:我在其中一个视图中设置了相机。我相信这会导致缓慢,因为当我跳过加载视图时一切都很好。但是我需要在我的应用中加载该视图:/
这是我的代码:
- (void)handleButtonTap:(NSNotification *)notification
{
changeOrder=1;
[self setViewControllers:@[[self.storyboard instantiateViewControllerWithIdentifier:@"one"] ] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[NavView2ViewController class]])
return nil;
if(changeOrder ==1)
{
if ([viewController isKindOfClass:[NavView2ViewController class]])
{
return nil;
}
if ([viewController isKindOfClass:[MainStoryViewController class]])
{
return [self.storyboard instantiateViewControllerWithIdentifier:@"Profile"];
}
return [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];
}
return [self.storyboard instantiateViewControllerWithIdentifier:@"Profile"];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[NavViewController class]])
return nil;
if(changeOrder==1)
{
if ([viewController isKindOfClass:[MainStoryViewController class]])
{
return [self.storyboard instantiateViewControllerWithIdentifier:@"one"];
}
return [self.storyboard instantiateViewControllerWithIdentifier:@"Profile"];
}
return [self.storyboard instantiateViewControllerWithIdentifier:@"one"];
}
答案 0 :(得分:0)
我在其中一个子视图中创建了一个带有三个视图的UIPageViewController和一个带摄像头控件的UIImagePicker。 这是以下链接: https://github.com/ShashwatMittal/UIPageViewController.git
让我知道它是否适合您。希望它有所帮助!