调用一个快速方法从目标c

时间:2016-12-01 10:44:54

标签: ios objective-c iphone swift

我对iOS开发相对较新,我遇到了一个问题,我想调用Swift方法从Objective C执行segue

这是我的Swift方法:

@objc func callReceived() {
        self.performSegue(withIdentifier: "goto_incomingcall", sender: self)
}

我用Objective C这样称呼它:

ViewController *controller = [ViewController new];
[controller callReceived];

新方法如此:

func `new`() -> ViewController {
    return ViewController()
}

如果我猜对了,我面临的问题是我正在初始化我的类ViewController的新实例,然后调用我的方法来执行segue,因为它不是ViewController的当前实例class,从该类的另一个实例执行segue使整个程序崩溃为signal SIGABRT

这样做的正确方法是什么?

问候。

1 个答案:

答案 0 :(得分:0)

首先,您应该在目标c文件中导入该swift类文件。 在self.performSegue(withIdentifier: "goto_incomingcall", sender: self)后,您应该使用 - 准备segue 方法进行数据传输。 像这样创建该类的引用 -

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"goto_incomingcall"]){
        Vc = (ViewController *)segue.destinationViewController;
        Vc.MethodSelected();

    }

}