【问题标题】:UINavigationController: Determine if Back button was pressed or popViewControllerAnimatedUINavigationController:确定是否按下后退按钮或 popViewControllerAnimated
【发布时间】:2015-12-22 14:17:04
【问题描述】:

UINavigationController 中,如果当前视图控制器由于用户按下后退按钮而被关闭,或者如果视图控制器正在通过popViewControllerAnimated 以编程方式被关闭,是否有一种方法可以按钮?

注意:我特别想区分这两个事件。这不是this question重复,因为我试图找出调用了哪个事件,而不是在视图控制器被解除时

澄清: 我试图弄清楚视图是否正在消失,因为

a) 后退按钮被按下或

b) popViewControllerAnimated 被调用

【问题讨论】:

  • 嗨。这不是这个问题的重复,因为我试图找出调用了哪个事件,而不是视图控制器被解除的位置
  • @Lneuner viewDidDisappear: 和 viewWillDisappear 是视图消失时调用的方法

标签: ios objective-c swift uiviewcontroller uinavigationcontroller


【解决方案1】:

在 viewWillDisappear 方法中,您可以检查 isMovingFromParentViewController 的值:

self.isMovingFromParentViewController()

这将返回 Bool,一个布尔值,表示视图控制器正在从其父级中移除。

更新:

正如回复的那样,我认为您需要使用自己的方法实现自定义后退按钮,该方法可以跟踪它。

self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = true; 

let backButton = UIBarButtonItem(title: "< Back", style: UIBarButtonItemStyle.Plain, target: self, action: nil)
backButton.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Chalkduster", size: 20)!], forState: UIControlState.Normal)
navigationItem.backBarButtonItem = backButton
backButton.addTarget(self, action: "backButtonMethod",forControlEvents:UIControlEvents.TouchUpInside)

【讨论】:

  • 您好,Arvind。此解决方案不适用于我的问题
  • 所以你不是在寻找从 uinavigationcontroller 堆栈中移除(pop)的视图控制器。
  • 我试图弄清楚视图是否正在消失,因为 a) 后退按钮被按下或 b) popViewControllerAnimated 被调用
  • 这个声音你需要放置你自己的自定义后退按钮来获得更新后的后退按钮轨道。
  • 是的,我也这么想。我只是想知道是否有更简单的方法
猜你喜欢
  • 1970-01-01
  • 2017-06-11
  • 2023-04-04
  • 2019-08-28
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多