gpt4 book ai didi

ios - 调用一个 swift 方法从 objective-c 执行 segue

转载 作者:行者123 更新时间:2023-11-28 08:22:25 24 4
gpt4 key购买 nike

我是 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< 的当前实例 类,从该类的另一个实例执行 segue 会使整个程序因 signal SIGABRT

而崩溃

正确的做法是什么?

问候。

最佳答案

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

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

}

}

关于ios - 调用一个 swift 方法从 objective-c 执行 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40908545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com