gpt4 book ai didi

iOS:关闭模态时,触摸事件不会发送到下一个 Controller

转载 作者:技术小花猫 更新时间:2023-10-29 11:06:01 25 4
gpt4 key购买 nike

在我的 Storyboard 中,我定义了一个 modal segue。通过一个按钮和一个简单的命令关闭相应的模态视图:

- (IBAction)dismiss:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
return;
}];
}

一切正常,但问题是,在发生此转换时,如果用户点击“下一个” Controller (即将替换模态的 Controller )的 View ,则此 Controller 不会捕获触摸事件,直到过渡完全完成。

我的 Controller 链是:

UINavigationController -> visibleViewController -> modal Controller

(但请注意,modal Controller 实际上是由 navigationController 呈现的 - 这就是 Storyboard 中默认设置的方式)。

如何确保一旦转换开始,触摸事件就被发送到下一个 Controller ?

最佳答案

您所描述的是正常的 iOS 行为,而不是特定于模型 ViewController 的行为。使用 push 和 pop 进入或退出 ViewController 也会等待转换结束,然后再接收目标 ViewController 上的触摸事件。

避免这种情况的一个好方法是在第一个 ViewController 内的容器中显示您的 ViewController。显示和关闭 ViewController 由您负责,并且需要更多代码(例如使用容器的 alpha channel ),但可以让您更好地控制 View 接收触摸事件的人员和时间.

例如:

- (IBAction)hideContainer:(id)sender {   

[UIView animateWithDuration:0.4
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^
{
self.container.alpha = 0;
}
completion:^(BOOL finished){}];
}

关于iOS:关闭模态时,触摸事件不会发送到下一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21043787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com