【问题标题】:UIGestureRecognizer between Swift and Objective-CSwift 和 Objective-C 之间的 UIGestureRecognizer
【发布时间】:2018-05-20 15:24:06
【问题描述】:

我有一个 Swift 应用程序视图,添加了一些用 ObjC 编写的组件。

我正在以这种方式将 ObjC UIViewController 类添加到 Swift 视图中,无论如何它都可以工作(我不希望视图成为弹出视图):

view.addSubview(myObjcViewController.view)

虽然,ObjC ViewController 的视图正确填充没有任何问题,但在该 viewController 中编写的不同手势识别器不再工作:

UISwipeGestureRecognizer *upSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(upButtonTapped)];
upSwipe.numberOfTouchesRequired = 1;
upSwipe.direction = UISwipeGestureRecognizerDirectionUp;
[self.view addGestureRecognizer:upSwipe];

我尝试通过以下方式更改手势识别器添加,但没有奏效:

[self.parentViewController.view addGestureRecognizer:upSwipe];

// or

[[[[UIApplication sharedApplication] delegate] window] addGestureRecognizer:upSwipe];

请帮忙。

【问题讨论】:

    标签: objective-c swift uigesturerecognizer


    【解决方案1】:

    问题是您不能像这样简单地抓取视图控制器的视图并将其填充到界面中:

    view.addSubview(myObjcViewController.view)
    

    相反,为了确保两个视图控制器(一个拥有view 和一个拥有myObjcViewController.view)都坚持连贯的父子关系。

    你没有跳那种舞。因此,“子”视图控制器已经不复存在,并且没有任何包含手势识别器可以与之交谈的代码。

    【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 2018-06-11
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多