我已经实现了一个带有5个标签的tabbarcontroller,每个标签都连接到一个视图。
创建tabBarcontroller,并在另一个视图中进行默认视图分配。
每个人看起来都很好,但我有一个错误。选项卡中的每个视图都有触发其他视图的按钮。这些视图没有标签,所以要使用后退按钮返回标签视图。
当我按下后退按钮时,我不希望从头开始创建视图(带有选项卡)。所以我把相关的代码放在viewdidload而不是viewwillappear。 (这个选择是因为这个视图从服务器下载数据,在此视图中将代码放在viewwillappear中变得非常耗时)
但是,如果我从当前标签返回到我之前触摸并查看过的标签页。我希望从头开始加载视图,因为此时应再次下载数据。但由于我使用的是viewdidload而不是viewwillappear,因此旧视图不会刷新。
我如何实现这种条件刷新视图取决于我是来自另一个标签还是来自带后退按钮的视图
答案 0 :(得分:1)
执行此操作的一种方法是视图控制器中的isMovingToParentViewController
方法。这将使您能够检测当前堆栈是否已从导航控制器中弹出。
有一个答案here解释了如何使用它,并链接到Apple的文档。
正如您可以从该主题中看到的那样,您也可以使用NSNotificationCenter
来执行此操作。