gpt4 book ai didi

ios - 以编程方式执行 segue,并且仍然在 Storyboard 中保留它

转载 作者:搜寻专家 更新时间:2023-11-01 05:52:01 26 4
gpt4 key购买 nike

单击表格单元格后,我想从嵌入在导航 Controller 中的表格 View 转到另一个 View Controller 。我仍然希望将第二个 View Controller 嵌入到同一个导航 Controller 中。因此,我通过 Storyboard创建了 segue。

但是,我想在点击单元格后有条件地检查是否应该执行 segue。

我已经检查了 shouldPerformSegueWithIdentifier 方法,它可以满足我的需要,但不幸的是,它在表点击处理程序之前执行。如果我删除 Storyboard segue 并仅通过 performSegue 进行 segue,我的第二个 View Controller 将不再嵌入到同一个导航 Controller 中。

有什么建议吗?

这是我的代码:

// Called on click event on table cell
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let app = apps[indexPath.section]
if app.state == .INSTALLED {
let inputVC = self.navigationController?.viewControllers[1] as? InputVC
inputVC?.app = app
performSegue(withIdentifier: "showAccSync", sender: self)
} else {
// show alert
}
}

最佳答案

您应该从 View Controller 本身 而不是单元格开始 Storyboard转场。这样,如果您点击一个单元格,它就不会自动执行。

segue from view controller

如果你想在不使用 Storyboard segue 的情况下将 View Controller 推送到导航堆栈,请使用 UINavigationControllerpushViewController:

if let secondVc = storyboard?.instantiateViewController(withIdentifier: "Second") {
navigationController?.pushViewController(secondVc, animated: true)
}

关于ios - 以编程方式执行 segue,并且仍然在 Storyboard 中保留它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878738/

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