我有一个几乎完美运行的应用程序。以下是我的应用程序的结构:
Storyboard上共有 6 个 View Controller 。前 3 个 View Controller 是最重要的。初始 View Controller 具有“登录”和“注册”按钮。 “登录”按钮以模态方式呈现登录 View Controller ,“注册”按钮以模态方式呈现注册 View Controller 。
注册 View Controller 有 3 个字段用于用户名、密码和电子邮件,然后是一个“提交”按钮。提交按钮将数据提交到我的网络服务器,如果所有内容都成功提交,它会自行调用“performSegueWithIdentifier”方法。
声明如下:
[self performSegueWithIdentifier:@"superSegue" sender:self];
我今晚花了 2 个小时试图让上述方法调用起作用,它终于起作用了。为了让它工作,我必须在 Storyboard上选择我的 Signup View Controller,然后转到 Editor > Embed In > Navigation Controller(如果我没记错的话,我必须这样做,因为注册 View Controller 是模态显示的)。然后我从我的注册 View Controller 的提交按钮拖到我想推送到的 View Controller 并选择推送,然后输入一个标识符名称。
无论如何,在我尝试使用我们使用方法调用推送到的 View Controller 上的后退按钮之前,上述所有操作都非常正常。如果我点击后退按钮,它会进入 90% 黑屏,顶部有一个空白导航栏和一个后退按钮,当然后退按钮也没有任何作用。
这是我在控制台中得到的错误:
Unbalanced calls to begin/end appearance transitions for <VerificationViewController: 0x14ed1bb0>
验证 View Controller 是注册 View Controller 通过 performSegueWithIdentifier 方法推送到的 View Controller 。
有谁知道我该如何解决这个错误?
我在下面附上了我的 Storyboard在 xcode 中的截图。有一个我已经编码但尚未连接的 View Controller ,无论如何都不应该有所作为,因此您可以忽略登录 VC 右侧的 View Controller 。
最佳答案
我今天早上在另一个 stackoverflow 问题中找到了答案。答案可见here .
当我最初设置 Push Segue 时,我单击并从一个按钮拖动,同时还在该按钮的 IBAction 方法实现中调用 performSegueWIthIdentifier 方法。这导致在按下按钮时执行 2 个相同的 push segues。我只是将我的方法调用留在了 IBAction 中,删除了旧的推送 segue,并创建了一个新的推送 segue,只是这次我单击并从整个 View Controller 而不是它的按钮中拖动。
关于ios - 不断收到 "Unbalanced calls to begin/end appearance transitions for <ViewController>"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20919616/