gpt4 book ai didi

iphone - iOS6 中的 UIPageViewController

转载 作者:IT王子 更新时间:2023-10-29 08:04:51 26 4
gpt4 key购买 nike

在 iOS6 中的方法 viewControllerAfterViewControllerviewControllerBeforeViewController 如果我返回 nil(当我在第一页或最后一页时阻止页面导航)应用程序崩溃异常:

'提供的 View Controller 数量 (0) 与请求的转换所需的数量 (1) 不匹配'

在 iOS5 中一切正常。

最佳答案

我遇到了同样的问题。我发现原因是替换了 UIPageViewController 的 UIPanGestureRecognizer 上的委托(delegate),这是一个禁忌。平移手势识别器正在调用一个未记录的方法 _gestureRecognizerShouldBegin:(注意前导下划线),UIPageViewController 实现并显然依赖它来正常工作(阅读:不崩溃)。我最终在我的类中实现了 respondsToSelector: 和 forwardingTargetForSelector: ,它使用 UIPageViewController 将未记录的委托(delegate)方法传递给 UIPageViewController 而没有具体命名它(并且几乎肯定会给我赢得应用程序商店评论拒绝)。

-(BOOL)respondsToSelector:(SEL)aSelector {
if ([super respondsToSelector:aSelector])
return YES;
else if ([self.pageViewController respondsToSelector:aSelector])
return YES;
else
return NO;
}

- (id)forwardingTargetForSelector:(SEL)aSelector {
if ([super respondsToSelector:aSelector]) {
return nil;
} else if ([self.pageViewController respondsToSelector:aSelector]) {
return self.pageViewController;
}
return nil;
}

我的长期解决方案是重新使用 UIPageViewController,这样我就不需要替换手势识别器委托(delegate)。

关于iphone - iOS6 中的 UIPageViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com