我对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
这样做的正确方法是什么?
问候。
答案 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();
}
}