Ios7 布局到布局的导航转换返回到错误的布局

Ios7 布局到布局的导航转换返回到错误的布局,ios7,uikit,uicollectionview,uicollectionviewlayout,Ios7,Uikit,Uicollectionview,Uicollectionviewlayout,我有两个uiCollectionViewController——让我们称它们为主控制器和从控制器。主视图控制器配置有布局A,从视图控制器配置有布局B。我将主视图上的useLayoutToLayoutNavigationTransitions设置为YES,并将从视图控制器推到导航堆栈上。布局从A变为B,我可以向后导航并查看布局A。一切都很好 但是,为了响应用户在主视图控制器中的搜索框中键入一些文本,我需要将主集合视图控制器的布局更改为布局C。这可以按预期工作,但当我将从属集合视图控制器推到堆栈上(

我有两个
uiCollectionViewController
——让我们称它们为主控制器和从控制器。主视图控制器配置有布局A,从视图控制器配置有布局B。我将主视图上的
useLayoutToLayoutNavigationTransitions
设置为YES,并将从视图控制器推到导航堆栈上。布局从A变为B,我可以向后导航并查看布局A。一切都很好

但是,为了响应用户在主视图控制器中的搜索框中键入一些文本,我需要将主集合视图控制器的布局更改为布局C。这可以按预期工作,但当我将从属集合视图控制器推到堆栈上(配置为布局B)并导航到<返回,我最终回到主集合视图控制器,使用布局A,而不是预期的布局C

到目前为止,我已经尝试:

  • -[UICollectionView setCollectionViewLayout:
    (及其相关/同级方法)上放置一个符号断点,以在将从属对象推到堆栈上之前检查集合视图布局是否有问题。当我期望布局改变时,我看到断点被击中,但在将从属集合视图控制器从导航堆栈弹出的过程中没有什么异常
  • 在调试器中停止并验证集合视图的
    collectionViewLayout
    属性的类型,在将从属集合视图推到堆栈上之前,我可以看到它被设置为布局C的实例。向后导航后,我可以看到布局已返回到布局A的类型,而不是布局C(如预期的那样),这与我在视觉上看到的相符
  • 实现
    -navigationController:willShowViewController:animated:
    委托回调并将集合视图布局设置为所需。然而,这一点似乎被忽略了
  • 实现
    -navigationController:didShowViewController:animated:
    并设置集合视图布局,但这会导致无限循环和错误记录到控制台
有人知道这里发生了什么以及如何解决这个问题吗?我想知道这是否是一个直接的UIKit错误,如果是,是否有任何潜在的解决办法