【问题标题】:iPhone Dev, UINavigationController, How to Programmatically Tell when Back Button is PressediPhone Dev,UINavigationController,如何以编程方式判断何时按下后退按钮
【发布时间】:2011-03-18 17:35:29
【问题描述】:

我有一个 UINavigationController,我想知道如何以编程方式判断它何时被按下?

我问是因为我需要在按下后退按钮时执行一些操作,并且仅在按下后退按钮时执行。在某些情况下,我以编程方式按下后退按钮,我需要忽略这些实例。有人有什么建议吗?

谢谢!


问题的解决方法如下:

我的应用程序委托中设置了一个标志。最初它设置为 False。当我以编程方式按下按钮时,我将其设置为 TRUE。然后,在我的顶视图控制器的 viewWillAppear 方法中,我测试标志并执行必要的操作。然后我将标志重置为 False。

【问题讨论】:

  • 您是自己创建返回按钮还是使用UINavigationController自动创建的按钮?
  • 这是自动按钮,否则我会为其添加一个 onTouchUpInside 事件。

标签: iphone uinavigationcontroller


【解决方案1】:

当您按下按钮时,以编程方式设置一个标志。当您执行印后操作时,请检查是否设置了标志。

【讨论】:

  • 我已经有了标志系统。问题是每次卸载子视图时我都会重置标志。结果是,当子视图启动然后以编程方式卸载时,无论如何它都会将该标志设置为 false - 似乎在我的所有代码触发后视图卸载。但是你所说的让我对事情的看法有点不同——当子视图卸载时我停止设置标志,并在其他地方设置它为假。谢谢!
【解决方案2】:

似乎没有一个委托方法,但有一个这样使用时可以满足您的需要。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

 if ([viewController isKindOfClass:[MasterViewController class]]) {
 }

}

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 2012-02-15
    • 2012-05-29
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多