相关疑难解决方法(0)

在ios6中,将pageViewController的gestureRecognizers委托设置为viewController会导致崩溃

这只是在ios6上开始发生,但是如果你使用页面视图控制器模板启动一个新项目.然后进去

PCRootViewControlle::viewDidLoad()
Run Code Online (Sandbox Code Playgroud)

将行添加到方法的底部.

for (UIGestureRecognizer *gR in self.pageViewController.gestureRecognizers)
{
    gR.delegate = self;
}
Run Code Online (Sandbox Code Playgroud)

您需要分配viewController以使其符合UIGestureRecognizerDelegate并实现该方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch (UITouch *)touch
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果您运行应用程序并尝试将页面超出界限,即转到1月并尝试返回

  • (UIViewController*)pageViewController:(UIPageViewController*)pageViewController viewControllerBeforeViewController:(UIViewController*)viewController

返回零.

该应用程序将崩溃.

ios5没有发生这种情况.我需要将gestureRecognizer委托分配给我的viewController,因为我并不总是希望pageViewController处理触摸事件.

有没有其他人经历过这个或指出如果我做错了什么?

非常感谢斯图尔特.

xcode objective-c ios ios6

8
推荐指数
2
解决办法
6343
查看次数

如何在UIPageViewController中设置第一页

当用户在a的第一页UIPageViewController并尝试返回时,我只返回nil.在iOS 5中,这很好用.它导致iOS 6崩溃.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The number of view controllers provided (0) doesn't match the number required (1) for the requested transition'
Run Code Online (Sandbox Code Playgroud)

这是我的代码.当返回contentViewController而不是nil,它工作正常.我该nil怎么办呢?

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
  viewControllerBeforeViewController:(UIViewController *)viewController {

    contentViewController = [[ContentViewController_iPhone alloc] init];

    int currentIndex = [self.modelArray indexOfObject:[(ContentViewController_iPhone *)viewController labelContents]];

    if ((currentIndex == 0) || (currentIndex == NSNotFound)) {

        //if on the first page, can't go back
        return nil;

     }

    contentViewController.labelContents = [self.modelArray …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ipad ios uipageviewcontroller

5
推荐指数
1
解决办法
6549
查看次数

当方向设置为水平时,UIPageViewController响应垂直平移

我已经烧了几个小时.我已经初始化UIPageViewControllerUIPageViewControllerNavigationOrientationHorizontal,但由于某种原因viewControllerBeforeViewController被称为当用户锅垂直.

此外,当发生这种情况时,没有页面翻转,didFinishAnimating:didFinishAnimating:previousViewControllers:transitionCompleted根本不会被调用.这意味着页面视图控制器知道这是一个垂直运动..

这是初始化代码 -

- (void)initPageViewController
{
    self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
                                                              navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal 
                                                                            options:nil];
    self.pageViewController.delegate = self;
    self.pageViewController.dataSource = self;

    [self addChildViewController:self.pageViewController];
    [self.view addSubview:self.pageViewController.view];

    // Set the page view controller's bounds using an inset rect so that self's view is visible around the edges of the pages.
    self.pageViewController.view.frame = self.view.bounds;

    [self.pageViewController didMoveToParentViewController:self];

    // Leave only pan recognizers enabled, so buttons positioned inside a page would work.
    for (UIGestureRecognizer *gr in self.pageViewController.gestureRecognizers)
    { …
Run Code Online (Sandbox Code Playgroud)

uipageviewcontroller

4
推荐指数
1
解决办法
1567
查看次数

标签 统计

ios ×2

objective-c ×2

uipageviewcontroller ×2

ios6 ×1

ipad ×1

iphone ×1

xcode ×1