如何在多个uiwindows之间传递事件

Posted

技术标签:

【中文标题】如何在多个uiwindows之间传递事件【英文标题】:How to deliver events between multiple uiwindows 【发布时间】:2017-02-18 08:27:15 【问题描述】:

我正在实现多 uiwindows。

原因是当其他视图转换时,底部最小视图必须始终保持在顶部。

主窗口位于第二个窗口之下。它提供了一种很好的方式来处理单独的视图,而不会造成任何混乱。例如,在主窗口中展示或推送新的视图控制器。

但主要问题不是将事件从第二个窗口传递到主窗口。 第二个窗口除了底部区域外具有透明背景,并且必须将透明背景中的事件传递到第二个窗口。

有没有人知道在分层窗口中处理事件的方法?

【问题讨论】:

【参考方案1】:

我确实在 uiwindow 中实现了以下代码。 当事件到达透明窗口区域时,此代码会将事件传递到下面的窗口。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

    UIView *resultView = [super hitTest:point withEvent:event];

    if (resultView == self) 
        NSLog(@"touched in transparent window !!");
        return nil;
     else 
        NSLog(@"touched in view!!");
        return resultView;
    

    return resultView;
 

【讨论】:

以上是关于如何在多个uiwindows之间传递事件的主要内容,如果未能解决你的问题,请参考以下文章

源码分析vuex如何维护多个组件的数据共享

如何在 Backbone.js 视图之间传递事件?

iOS:如何在多个视图中显示一个小视图而不在每个视图中初始化它?

如何使用 OnNavigatedFrom 和 OnNavigatedTo 事件在页面之间传递数据

RxSwift:如何通过多个视图模型传递控制事件

将触摸事件传递给 iOS 状态栏