【问题标题】:Detect when the user taps on the left side button of a UINavigationController [duplicate]检测用户何时点击 UINavigationController 的左侧按钮 [重复]
【发布时间】:2011-06-21 09:10:15
【问题描述】:

可能重复:
Find out if user pressed the back button in uinavigationcontroller?

我想在用户点击 UINavigationController 的左侧按钮(“返回”按钮)时播放声音。

如何检测到这一点?

【问题讨论】:

    标签: cocoa-touch uinavigationcontroller


    【解决方案1】:

    UINavigationController 有一个委托,每当视图控制器即将被推送到视图中时(以及之后),都​​会调用该委托。您可以简单地通过调用来使您的视图控制器成为委托(例如在 viewDidLoad 中):

    [[self navigationController] setDelegate:self];
    

    然后在你的视图控制器中实现navigationController:willShowViewController:animated:方法。

    【讨论】:

      【解决方案2】:

      另一个简单的方法是在 viewWillDisappear() 中实现你的声音:

      - (void)viewWillDisappear:(BOOL)animated {
      
      //play my sound here
      
      }
      

      或者更健壮的方法,以确保仅在按下后退按钮时播放声音(如果您有其他方式可以从导航堆栈中弹出视图)是子类化 UINavigationController 并放入自定义操作返回按钮的方法。 This page 为您提供了如何执行此操作的示例。

      该示例基本上继承了 UINavigationController 并覆盖了

      - (UIViewController *)popViewControllerAnimated:(BOOL)animated 
      

      按下后退按钮时调用的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-16
        • 1970-01-01
        相关资源
        最近更新 更多