【问题标题】:popToRootViewController - notificationpopToRootViewController - 通知
【发布时间】:2023-03-24 10:01:01
【问题描述】:

我有一个 tabBar 控制器。默认情况下,点击活动选项卡会在该选项卡的导航控制器上调用 popToRootViewController。这就是我想要的,但是当这种情况发生时我还需要做一些定制。有问题的视图控制器有一个导航控制器,但不是 UINavigationController 的子类。如何监听 popToRootViewController 何时发生并采取措施?

【问题讨论】:

  • 你试过在 viewWillDisapear 中收听吗?

标签: iphone ipad uinavigationcontroller uitabbarcontroller


【解决方案1】:

你可以使用UINavigationControllerDelegate's方法:

– navigationController:didShowViewController:animated:

并检查显示的控制器是否是您想要的控制器。

希望这会有所帮助

(我记得在 iOS 2.x 中使用过它,它有点错误,我想知道现在是否可以。应该是因为它已经是 4 了)

【讨论】:

  • 这行得通,有点。唯一的问题是当您第一次显示根视图控制器时会调用此方法。我只想在 popToRootViewController 发生时才采取行动。
  • 我没试过,但 UINavigationBarDelegate 的方法也应该可以工作:navigationBar:didPopItem: 例如
【解决方案2】:

您可以将代码放在 UITabBarController 委托的 – tabBarController:didSelectViewController: 方法中,也可以放在 UIViewController 的 - viewWillAppear:animated: 方法中。

【讨论】:

    【解决方案3】:

    注意:

    如果您在导航堆栈中添加了 Tabbarcontroller,

    -(void)viewWillAppear:(BOOL)animated
    

    不会在 iOS 4.2 或更低版本中调用,我浪费了这么多天来弄清楚这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      相关资源
      最近更新 更多