Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 8中模态序列的部分旋度转换_Ios_Objective C_Ios8 - Fatal编程技术网

iOS 8中模态序列的部分旋度转换

iOS 8中模态序列的部分旋度转换,ios,objective-c,ios8,Ios,Objective C,Ios8,我用两个VCs创建了一个简单的应用程序。 我从第一个via按钮打开第二个VC。顺序是“以模态存在”,过渡是“部分旋度”。此方案在iOS7上运行良好,但在iOS8上,第一个VC的视图在卷曲动画结束时消失: 我也有同样的问题。我在Xcode 6(beta 7)+iOS 8(beta 5)中看到了它。仍然存在于这两种基因的转基因种子中 iOS 7.1详细信息: 它被称为“部分卷曲”,在iOS 7上显示为“部分卷曲”(例如,部分-您仍然可以在窗口顶部看到原始视图的一部分)。在iOS 7上-当你点击这个部

我用两个VCs创建了一个简单的应用程序。
我从第一个via按钮打开第二个VC。顺序是“以模态存在”,过渡是“部分旋度”。此方案在iOS7上运行良好,但在iOS8上,第一个VC的视图在卷曲动画结束时消失:
我也有同样的问题。我在Xcode 6(beta 7)+iOS 8(beta 5)中看到了它。仍然存在于这两种基因的转基因种子中

iOS 7.1详细信息:

它被称为“部分卷曲”,在iOS 7上显示为“部分卷曲”(例如,部分-您仍然可以在窗口顶部看到原始视图的一部分)。在iOS 7上-当你点击这个部分暴露的“原始”视图时,视图会展开回到原始区域的完整窗口

iOS 8详细信息:

segue不保留任何原始显示。和在窗口/屏幕上的任何位置轻触,通过自动展开返回原始视图。如果视图上有一个UITextField,当您点击它以输入值时…原始视图将返回,而不会触发任何关联的UITextField方法。不显示键盘,它只是展开到原始视图

在我看来,与原始视图的部分显示角相关联的触摸定义被错误定义为整个窗口

当然,我对iOS编程非常陌生,所以我的见解,如果准确的话,并没有给我一个如何解决它的线索!哈哈,我希望有人会有知识,至少提供一个可用的解决办法

吉姆

另外,我还没有足够的声望点数来投票或发表评论,因此我的答案不是答案

这要么是一个bug,要么(IMHO)来自苹果的一个信号,表明这种modaltransation风格即将被弃用。因为它可能是假象的最后一个遗迹,我认为这是一个安全的赌注,它是这个世界的简称。我花了几个小时调试了一个问题,这个问题是关于在一个模式显示的viewcontroller上不一致的触摸,我使用了这个转换并拔出了头发。我切换到另一种模式转换样式,然后砰的一声——iOS8引起的所有问题都消失了


基思

我也追了这只虫子好几天了!事实证明,你仍然可以成功地使用部分卷曲;仅当选中“动画”框时,问题才会出现。取消选中动画框,您就可以开始了

我也有同样的问题。触摸屏幕上半部分的任意位置,导致模式关闭(展开)。改变了动画,世界又恢复了和平


所以,iOS8中肯定有一个bug。

解决这个问题的简单方法是

- (void)viewDidAppear:(BOOL)animated
{

    [super viewDidAppear:animated];

    for(UIGestureRecognizer *gesture in [self.view gestureRecognizers])
    {

        if([gesture isKindOfClass:[UIGestureRecognizer class]])
        {

            [self.view removeGestureRecognizer:gesture];

        }

    }

}

您需要找到一个superview,其中包含要禁用该手势识别器的视图的UIDismissCurlupCapgestureRecognitor。以我为例:

po self.view.superview?superview?superview?手势识别器

▿ 可选> ▿ 一些:2个要素 - [0] : ; 目标=> -[1]:

因此,我删除了手势识别器,使用这部分代码:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    if (self.view.superview?.superview?.superview != nil){
        if (self.view.superview!.superview!.superview!.gestureRecognizers != nil){
            for gestureRecognizer in self.view.superview!.superview!.superview!.gestureRecognizers!{
                if (gestureRecognizer.isKindOfClass(UITapGestureRecognizer)){
                    self.view.superview!.superview!.superview!.removeGestureRecognizer(gestureRecognizer)
                }

            }
        }
    }

}

注意:这一点非常重要,因为view在加载周期的早期并不知道它的超级视图。

“任何点击,任何地方”只在屏幕的上半部分(在我的例子中,在iPad mini retina上),Apple根本没有提到任何对(部分)页面卷曲效果的反对意见。所以这对我来说是一个iOS 8 Bug;-)这真糟糕。完全相同的构建在iOS 7上是完美的,但不是在8—.-我认为这也是一个bug,但不幸的是它在一段时间内没有得到解决,甚至在几次更新XCODE之后。因此,如果这本身就是一个“bug”,那么苹果要么不知道,要么出于任何原因不愿纠正它。我很好奇这个问题是否仅限于故事板,或者手动调用segue是否也会表现出这种行为。当我有机会的时候,我会尝试用它来做实验,但是如果有人已经做过并且可以证实…?没关系。我尝试手动调用,也尝试在故事板之外构建它,除非您打算编写自己的过渡效果(即覆盖“执行”),否则它不会工作。似乎这就违背了使用罐装啤酒的初衷。我想现在我们要么手工重新创建这个效果,要么重新设计应用程序,以其他方式呈现目标视图控制器。我现在没有看到其他的工作,也没有任何解释说明为什么它以前工作正常时会失败。这个问题在iOS 9测试版中仍然存在。如果你这样做,你就再也没有卷曲动画了。这一点在iOS 10(Xcode 8.3 beta版)中仍然存在。将过渡改为水平翻转是我摆脱它的方法。