自定义Segue - 发送到实例的无法识别的选择器--setUseDefaultModalPresentationStyle

时间:2015-10-09 18:09:33

标签: ios objective-c swift ios7 segue

我正在使用此custom segue。它在iOS8 +上完美运行,但是,在iOS 7上,我收到了这个错误。

int* complement2_add(int first_complement2[], int* second_complement2[], int size)
{
    int i;
    int carry = 0;
    int result_array = (int*)malloc(size * sizeof(int));

    for(i = size-1; i>=0; i--)
    {
        result_array[i] = (first_complement2[i] + second_complement2[i] + carry) %2; //it says "Invalid operands to binary % (have 'int *' and int)"
        carry = (first_complement2[i] + second_complement2[i] + carry)/2 ; //as well as "Invalid operands to binary / (have 'int *' and int)"
    }

    result_array[i] = carry; // and here "subscripted value is neither an array nor pointer nor vector
    int j;

    for(j = 0; j < size; j++)
    {
        printf("%d", result_array[j]);
    }
    return result_array;
}

问题是,崩溃是模糊的。我甚至尝试在各处放置断点并尝试捕获任何错误。但是,它仍然没有指出错误的位置。

事实上它似乎是一个参数/选择器错误,我怀疑这可能是一个Swift 2错误。我能找到对setUseDefaultModalPresentationStyle的引用的唯一地方是here

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

在故事板中的segue上尝试将Segue设置设置为Custom,并以编程方式设置样式:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    UIViewController *destination = segue.destinationViewController;
    destination.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}

答案 1 :(得分:0)

这是因为此库使用UIVisualEffectView来获取模糊效果。遗憾的是,UIVisualEffectView仅适用于 iOS 8及以上版本

有关详细信息,请参阅 documentation

不幸的是,如果你想使用花哨的模糊过渡,你的应用程序将无法与iOS 7及更低版本兼容,这不是一个很大的问题,因为目前只有10%的设备拥有iOS 8以下的iOS。

<强> More info here

解决方案:

您可以使用此版本的旧版本解决此问题,该版本尚未使用UIVisualEffectView,而是使用UIImage+ImageEffects.m来获取模糊效果。