Iboutlets 在当前通话中没有价值

Iboutlets have nil value on present call

@objc func handleGoToSearch() {
//        present(UINavigationController(rootViewController: searchDisplayController()), animated: true, completion: nil)
        performSegue(withIdentifier: "searchSegue", sender: nil)
    }

我正在使用对 SearchViewController 的当前调用,但是 ib 出口在哪里为 nil,我感觉它与传递新实例有关,并且出口没有及时加载。 (我在别处读到的)。当我使用 perform segue not errors.

我想知道到底发生了什么。我还认为 present() 可能不适用于故事板,或者我传递了错误的值类型。

您的出口为零,因为您不是仅从 Swift class 创建 viewcontroller,而不是从故事板创建。要从故事板创建 viewcontroller,请执行以下操作:

let viewController = UIStoryboard(name: "Name of the storyboard").instantiateViewController(withIdentifier: "Identifier of the viewcontroller")

您应该填写情节提要的名称(通常是Main)并在情节提要中给viewcontroller一个标识符,并在代码中使用该标识符。