UINavigationController:确定是否按下了Back按钮或popViewControllerAnimated

时间:2015-12-22 14:17:04

标签: ios objective-c swift uiviewcontroller uinavigationcontroller

UINavigationController中,如果当前视图控制器因用户按下后退按钮而被解除,或者视图控制器是否以popViewControllerAnimated编程方式被解除,是否有按钮的方法? / p>

注意:我特意尝试区分这两个事件。这是不是this question的重复,因为我试图弄清楚哪个事件被调用,而不是在视图控制器被解除时

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

a)按下后退按钮或

b)调用popViewControllerAnimated

1 个答案:

答案 0 :(得分: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)