【问题标题】:ViewdidLoad is called again when moving to next screen on button click当点击按钮移动到下一个屏幕时,再次调用 ViewdidLoad
【发布时间】:2015-12-07 06:35:25
【问题描述】:

我知道加载新屏幕时会调用 viewDidLoad。 假设我有 2 个屏幕:屏幕 1(主屏幕)和屏幕 2。 当应用程序启动时,Screen 1 的 viewDidLoad 被调用。没错。 我面临的问题是,当我按下按钮移动到屏幕 2 时,再次调用屏幕 1 的 viewdidload。 在调用屏幕 2 的 viewDidLoad 之后。

为什么在按下按钮时再次调用屏幕 1 的 viewDidLoad?

P.S 我知道没有内存问题,因为我已经在开发应用程序了。这个问题在以前的应用程序中不存在,因为我现在运行它们,但是我创建的每个新应用程序都有这个问题。 此外,我正在使用情节提要和 Xcode 5。 我已经尝试过推送和模式来移动到下一个屏幕。

【问题讨论】:

  • 您是否记录了它所调用的实例?你有没有下断点并查看堆栈跟踪?
  • 是的,我已经设置了断点......但它仍然这样做
  • 但是它是从哪里调用的呢?
  • 当我使用“performseguewithidentifier..”时,从按钮单击方法进入 viewDidLoad 本身,然后进入下一个屏幕
  • 显示按钮按下和prepareForSegue的代码

标签: ios uiviewcontroller


【解决方案1】:

我只是想出了一个愚蠢的错误。

实际上,在创建第二个视图控制器的过程中,它如何(意外地)成为了第一个视图控制器而不是 UIViewController 的子级。这就是为什么当我单击按钮移动到下一个视图时。它转到第二个视图控制器的 viewDidLoad,其中调用了方法 [super viewDidLoad] 再次调用了第一个屏幕上的 viewDidLoad 方法。

这是一个非常愚蠢的错误。但只是分享它以便对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多