我有一个应用程序,它的主控制器是tab bar controller。每个标签页都有一系列带有导航控制器的视图,我通常会将这些视图推入和弹出堆栈中。
奇怪的问题是:
情况1:如果我创建一个UINavigationController,并将一个新的视图控制器作为其根视图,然后呈现此NavigationController。在新的导航堆栈中,我可以轻松地模态呈现一个视图并解除呈现而没有任何问题。
情况2:现在不使用新的UINavigationController,我呈现一个视图,当我解除呈现时,下面的视图表现得很奇怪。例如,如果呈现视图是UICollectionView,则它只会滚动回到第一个单元格,就像执行"reload"操作并"scrollTo"到第一个单元格。如果呈现视图是从根视图推送的视图,则它只会弹回根视图,这显然不是预期的。
在实现UITabbarController之前,我没有遇到这个问题,所以我想,当在UITabbarController中呈现视图并解除呈现时,我应该更了解底层发生了什么。
我猜测,在UITabbarController视图中解除呈现视图时,它会将所有内容“重置”为当前选项卡的第一个视图。尽管我不确定这是正确的。
我知道这有点抽象,但我无法不想着我可能漏掉了什么关键性的东西。
奇怪的问题是:
情况1:如果我创建一个UINavigationController,并将一个新的视图控制器作为其根视图,然后呈现此NavigationController。在新的导航堆栈中,我可以轻松地模态呈现一个视图并解除呈现而没有任何问题。
情况2:现在不使用新的UINavigationController,我呈现一个视图,当我解除呈现时,下面的视图表现得很奇怪。例如,如果呈现视图是UICollectionView,则它只会滚动回到第一个单元格,就像执行"reload"操作并"scrollTo"到第一个单元格。如果呈现视图是从根视图推送的视图,则它只会弹回根视图,这显然不是预期的。
在实现UITabbarController之前,我没有遇到这个问题,所以我想,当在UITabbarController中呈现视图并解除呈现时,我应该更了解底层发生了什么。
我猜测,在UITabbarController视图中解除呈现视图时,它会将所有内容“重置”为当前选项卡的第一个视图。尽管我不确定这是正确的。
我知道这有点抽象,但我无法不想着我可能漏掉了什么关键性的东西。