解散子级ViewController时,事件不再在父级ViewController中触发

时间:2018-08-30 07:44:37

标签: xcode events viewdidappear ios12

我有一个使用多个UIButton构建的自定义UIView。在ViewController的 viewDidAppear 函数中,我获取此UIView的子视图,并将addTarget附加到它们。一切都会按预期进行,并且嵌入式UIButton会根据添加的tap事件来进行操作,从而选择和取消选择按钮。

但是当我实例化一个新的ViewController时,显示它然后将其关闭,当我返回父ViewController时,添加的事件不再响应。父ViewController的其余元素(UITableView,其他按钮等)起作用。这仅在模拟器和iPhone的 iOS 12 中发生。在iOS 10-11中,其工作原理很像。

我所看到的是,在IOS 12中,当我关闭viewController并返回到调用方ViewController时,没有viewDidAppear被调用。

我已经浪费了几天寻找解决方案,但似乎没有任何效果。自定义UIView类中的UIButton之所以响应,是因为我在其本机点击事件中放置了一些“ print()”,并且在点击时会收到响应,在ViewController中定义addTarget时肯定出错了。

最近我添加了一个UIButton来触发附加事件的函数。如果我点击它,按钮将再次响应。如果我在Second ViewController中将该函数作为Dissmiss方法的回调进行调用,则无法正常工作。就像当我回到ViewController时,它没有处于活动状态。

必须说viewControllers放置在选项卡栏控制器内的导航控制器内。

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

禁用“清除图形上下文”成功了 ...我不知道为什么,但是我想这是没人能理解的XCode Magic。