【问题标题】:Swipe gesture being added to a UIView or UIViewController upon segue在 segue 时将滑动手势添加到 UIView 或 UIViewController
【发布时间】:2023-04-10 20:37:01
【问题描述】:

我完全被这个难住了。我一直在从事一个同时具有横向视图和纵向视图的项目。我从一个视图控制器到另一个视图控制器,第二个视图控制器有一个 UIView 允许自定义绘图。但是,当我处于横向模式时(并且仅在横向模式下),我无法在视图中绘制(带有触摸......功能),因为当我在视图的左半部分并拖动时在屏幕左侧,我被带回到上一个视图控制器。

视图控制器嵌入在导航控制器中,所以我不确定这是否是导航控制器创建的一些内置 segue 以将我送回或其他东西,但除此之外,我想不出什么会导致这个。

知道是什么原因造成的吗?我已经检查了 UIView 本身并且没有与之关联的手势识别器,所以我不知道它会隐藏在哪里。

【问题讨论】:

    标签: ios objective-c iphone swift uiview


    【解决方案1】:
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
    

    将此添加到您的第二个视图控制器的 viewDidLoad 函数中。

    iOS 7 及更高版本具有从左滑动时返回上一个视图控制器的功能

    更新

    self.navigationController.interactivePopGestureRecognizer.delegate = self
    
    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer!) -> Bool {
    return false;
    } 
    

    【讨论】:

    • 将答案标记为正确,如果它有效并支持它
    • 好吧,由于某种原因,它刚刚停止工作。代码我除了转成swift没改,大概工作了10分钟左右,现在就停止工作了。
    • 试试这个 self.navigationController.interactivePopGestureRecognizer.delegate = self funcgestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer!) -> Bool { return false; }
    • 见上面的更新。在 viewDidLoad 中设置 interactivePopGestureRecognizer 的委托并将函数添加到视图控制器
    • 这给了我一个命名错误,因为我有函数 func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool),它说 self.navigationController 存在命名问题。之前提交的代码并没有(没有)这么说。
    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多