gpt4 book ai didi

swift - View Controller 不会推送

转载 作者:行者123 更新时间:2023-11-28 05:46:45 26 4
gpt4 key购买 nike

我的应用委托(delegate)中有一个函数,它应该在从 Siri 快捷方式调用时推送 View Controller 。

func pushNewView() {
if let wind = UIApplication.shared.delegate?.window {
if let rootViewController = wind?.rootViewController {
let viewToPush = TripTableViewController()
if let alreadySomeOneThere = rootViewController.presentedViewController {
alreadySomeOneThere.navigationController?.pushViewController(viewToPush, animated: true)
} else {
rootViewController.navigationController?.pushViewController(viewToPush, animated: true)
}
}
}
}

当我从 AppDelegate 调用 pushNewView() 时,没有任何反应。

如果我展示 View Controller 而不是推送它,那确实有效,但我希望推送 View Controller 。

我没有使用任何 Storyboard,我的所有代码都是程序化的。

有谁知道如何让这个函数成功推送View Controller吗?

最佳答案

什么都没有发生,因为 alreadySomeOneThererootViewController 都没有嵌入到导航 Controller 中。

为了推送另一个 View Controller ,需要有一个现有的导航 Controller 。

您需要做以下两件事之一。重做您的设置,使 alreadySomeOneThererootViewController 嵌入导航 Controller ,或者您需要从 alreadySomeOneThererootViewController

请注意,您不能推送导航 Controller 。如果您选择将 alreadySomeOneThererootViewController 放在导航 Controller 中,则只需推送 viewToPush。不要创建另一个导航 Controller 。

如果您决定从 alreadySomeOneThererootViewController 呈现新的 View Controller ,那么根据 viewToPush 的需要,您可以或可能不需要 viewToPush 嵌入它自己的导航 Controller 。

关于swift - View Controller 不会推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384866/

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