[英]Call a swift method to perform segue from objective c
我對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
這樣做的正確方法是什么?
問候。
首先,您應該在目標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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.