簡體   English   中英

調用swift方法從目標c執行segue

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM