Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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 prepareForSegue给出线程1:EXC_断点_Ios_Swift - Fatal编程技术网

Ios prepareForSegue给出线程1:EXC_断点

Ios prepareForSegue给出线程1:EXC_断点,ios,swift,Ios,Swift,我有两个控制器,分别名为RootViewController和CountrySelectionActivityViewController。我编写了一个prepareForSegue函数,用于将数据从第一个视图传递到第二个视图。我有一个导航控制器,其中嵌入了视图。这是我的代码: override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "ne

我有两个控制器,分别名为
RootViewController
CountrySelectionActivityViewController
。我编写了一个prepareForSegue函数,用于将数据从第一个视图传递到第二个视图。我有一个导航控制器,其中嵌入了视图。这是我的代码:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "next") {
        let mynavigationController = segue.destinationViewController as UINavigationController
        let vc = mynavigationController.topViewController as CountrySelectionActivityViewController
        vc.countries = countries
    }
}

如果我注释掉这段代码,我的应用程序将运行并移动到下一个viewcontroller。但是,如果未实现此函数,则不会传递数据。我的实现有什么问题?

我想实现与您相同的目标,在执行序列时在控制器之间传递变量

我的解决方案是在每个控制器中创建两个变量,并通过自定义序列将它们关联起来

为了定义自定义segue,创建了一个新类:CustomPushSegue.m。此文件实现了
-(void)perfom
。此类的类型为
UIStoryboardSegue
,并且具有类型为
UIViewController
的源变量和目标变量

然后,将目标和原点的每个viewController转换为自定义控制器,并传递变量:

#import "OriginController.h"
#import "DestinationController.h"

-(void) perform {
    UIViewController *destinationController = self.setinationViewController;
    UIViewController *originController = self.sourceViewController;

    if ([[self identifier] isEqualToString : @"Segue"]){
        (DestinationController*) destinationController.var1 = (OriginController*) originController.var1;
    }

    //Stuff related to the performance of the Segue goes here
}

如果您需要更多信息,请询问。我可以给您发送一些示例文件。

哪一行有问题?是否在Interface Builder中明确设置了segue标识符?(另外:您以前是否在早期的beta版中设置了这个segue?我发现我有问题,直到我进入IB并在beta版7中重新键入我现有的segue标识符…)