swift - 如何在ViewController加载上执行prepareForSegue函数?

标签 swift xcode

我试图在 ViewController 加载时执行 segue,以便它可以触发 prepareForSegue 函数。

我尝试过使用performselector,但它不起作用。有什么建议么?

func doSegue() {
    performSegue(withIdentifier: "doSegue", sender: nil)
}    
perform(Selector(("doSegue")), with: nil, afterDelay: 1)

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let guest = segue.destination as! WarningTableViewController
    //code
}

它说找不到名为doSegue的选择器。

最佳答案

您发布的代码令人困惑。
为什么那里有一个 perform(Selector...

这是一个工作示例:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        performSegue(withIdentifier: "doSegue", sender: self)
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "doSegue" {
            print("It works")
            // Or call another function, e.g. "doSomethingElse()"
        }
    }
}

itWorks

还要仔细检查Interface Builder中的segue声明:

ib

关于swift - 如何在ViewController加载上执行prepareForSegue函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57663180/

相关文章:

ios - 在 ScrollView 上创建计时器

ios - 当我打开在 Xcode 4 中创建的 Google Maps 项目时,Xcode 5 会警告我的架构设置

ios - Xcode保持调试区域关闭

swift - 删除用户帐户时出现 firebase 错误 "This operation is sensitive and requires recent authentication. Log in again before retrying this request."

arrays - Swift 3 - 使类可迭代

xcode - 自动多行标签swift

objective-c - 使用 Core Plot Xcode 4.3.2 iOS 链接器命令失败

Xcode SwiftUI 按钮 - 无法居中

ios - Swift 3 - 检测 UITextView 中的新行

ios - 将 .swift 中的全局变量传递给特定的 viewController