Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 防止在添加视图控制器时调用“willMoveToParentViewController”_Iphone_Ios_Uiviewcontroller - Fatal编程技术网

Iphone 防止在添加视图控制器时调用“willMoveToParentViewController”

Iphone 防止在添加视图控制器时调用“willMoveToParentViewController”,iphone,ios,uiviewcontroller,Iphone,Ios,Uiviewcontroller,在我的应用程序中,当用户按下导航栏上的后退按钮时,我希望程序触发一些操作。因此,我一直在使用willMoveToParentViewController。但是,在添加或删除viewController时会调用该方法。添加viewController时,如何防止调用它?如果有其他方法可以检测何时按下导航栏中的backButton,请提出建议 谢谢 使用viewdiddemouse进行相同的操作。你可以检查一下苹果。当视图控制器的视图从视图层次结构中删除时,这会通知视图控制器。作为替代方法,您只需检

在我的应用程序中,当用户按下导航栏上的后退按钮时,我希望程序触发一些操作。因此,我一直在使用
willMoveToParentViewController
。但是,在添加或删除viewController时会调用该方法。添加viewController时,如何防止调用它?如果有其他方法可以检测何时按下导航栏中的backButton,请提出建议


谢谢

使用
viewdiddemouse
进行相同的操作。你可以检查一下苹果。当视图控制器的视图从视图层次结构中删除时,这会通知视图控制器。

作为替代方法,您只需检查
willMoveToParentViewController
中的父视图是否为
nil
。按下后退按钮时,它将为
nil

例如:

override func willMoveToParentViewController(parent: UIViewController?) {
    super.willMoveToParentViewController(parent)
    if parent == nil {
        // view controller being removed (back button)
        // could use this area for passing back some variables 
        //   or whatever else you needed to do when back is hit
    } else {
        // view controller being added, do nothing
    }
}

怎么样
viewdiddemove
?查看此处的文档:感谢您的建议。。让我试试看,行得通。。谢谢你的建议。。我太执着于上述方法,一时无法跳出框框思考:-)