gpt4 book ai didi

ios - 使用 performSegueWithIdentifier/以编程方式快速更改 View

转载 作者:可可西里 更新时间:2023-11-01 00:53:16 27 4
gpt4 key购买 nike

所以我试图在触发某些条件时以编程方式更改 View 。

我创建了一个简单的项目,我想在加载 View 1 后从 View 1 更改为 View 2。实际上,有一些逻辑操作会检查某个变量是否为真,然后它会调用 performSegueWithIdentifier 函数,但是为了尽可能简单,我删除了该代码。

我执行的步骤是,首先创建两个 View : Showing Two Views

然后我单击 View 1,检查其属性,然后创建一个手动触发的 segue 到 View 2 Connecting Manual Segue

我选择了“显示”选项,所以现在我的 View 通过 segue 连接 Connected Manual Segue然后在属性检查器下,我给出 Storyboard转场和“GoToView2”的标识符。 Naming Segue从那里我转到 ViewController.swift 文件,然后在 viewDidLoad 函数中。我插入 performSegueWithIdentifier 代码:

self.performSegueWithIdentifier("GoToView2", sender: self)

Adding PerformSegueWithIdentifier Code

但是,当我随后运行代码时。 View 2 未加载,模拟器中仅显示 View 1。

如有任何帮助和解释,我们将不胜感激。

最佳答案

我在尝试在 viewDidLoad 函数中执行 segue 时遇到了同样的问题,出现的错误似乎是您尝试使用 segue 加载的 View 不在窗口层次结构。

更改对 viewDidAppear 的调用似乎解决了另一篇文章中提到的问题:whose view is not in the window hierarchy (注意语言是objective-c不是swift,但是可以翻译)。

似乎您必须小心在 View 生命周期中的什么时候要将其更改为另一个 View Controller - 在 viewDidLoad Storyboard 中的所有 View 都不可用。

顺便说一句,如果没有条件,每次加载 View 时都会触发 segue(并加载 View Controller )!

关于ios - 使用 performSegueWithIdentifier/以编程方式快速更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29320135/

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