3

我的 App 逻辑是这样的:VCA => VCB,并且在 VCB 中有一个带有左右滑动功能的滚动视图。一些代码有助于理解 VCB 中的结构:

self.scrollView.pagingEnabled = YES;
self.scrollView.directionalLockEnabled = YES;
self.scrollView.contentSize =CGSizeMake(CGRectGetWidth(self.scrollView.frame) * numberPages, CGRectGetHeight(self.scrollView.frame));

所以我想要的是水平列出一些页面并左右滑动来导航。每个页面都有自己的视图控制器(VCB 的子视图控制器),我像这样添加它们:

if (controller.view.superview == nil)
{
    [self addChildViewController:controller];
    [self.scrollView addSubview:controller.view];
    [controller didMoveToParentViewController:self];               
}

到目前为止,它适用于 iOS 6。我可以滑动以更改页面。每个页面内的所有功能也可以正常工作。

然后问题就出在iOS 7的新功能上,向右滑动自动调用popViewControllerAnimated:,效果和点击返回键一样。为了解决冲突,我禁用了interactivePopGestureRecognizer:self.navigationController.interactivePopGestureRecognizer.enabled = NO; 它工作正常,当我只想滑动更改页面时没有强制弹出。

现在真正的问题。我在导航栏上设置了一个后退按钮(backBarButtonItem)。每次我使用该按钮从 VCB 弹出回到 VCA 并且当前页面不是第一页(这意味着左侧至少有一个页面)时,弹出动画就像首先将页面更改为左侧一个,然后立即显示 VCA,没有任何动画。

那么有什么解决办法吗?请帮我。

4

1 回答 1

1

首先,如果没有任何代码,很难确定问题所在。

其次,您为什么不自己创建按钮,并为其添加一个目标,一个将关闭/弹出视图控制器的功能?

于 2013-12-25T08:36:45.450 回答