【问题标题】:Save the last state of the viewController保存 viewController 的最后状态
【发布时间】:2015-01-03 16:36:17
【问题描述】:

我有 2 个视图控制器。其中之一是用于游戏屏幕,它有许多不同的变量,如标签、按钮、图像。另一个是暂停菜单。当我暂停游戏并点击恢复按钮时,它会自然调用第一个 viewController 的 viewDidLoad。

当用户点击暂停按钮时,我想保存游戏的最后状态。或者我想在用户点击恢复按钮时查看游戏的最后状态。如果有不同的解决方案,我不想为此使用 nsuserdefault。希望我能解释我的问题。

最好的问候, 塔哈

【问题讨论】:

    标签: ios uiviewcontroller segue resume savestate


    【解决方案1】:

    当我暂停游戏并点击恢复按钮时,它会自然调用第一个 viewController 的viewDidLoad

    那你做错了。没有理由仅仅因为您正在显示暂停菜单视图控制器就应该拆除第一个视图控制器(带有游戏屏幕)。您需要在这里重新考虑您的架构。

    例如,如果第一个视图控制器呈现第二个视图控制器,那么第二个视图控制器的视图出现了,但第一个视图控制器没有被拆除。当第二个视图控制器再次消失(恢复)时,第一个视图控制器的viewWillAppear:viewDidAppear: 将被调用,但不会 viewDidLoad。你的工作是组织你的任务,让游戏在viewWillDisappear: 暂停并在viewDidAppear: 继续,但显示的数据不会删除或重置。

    【讨论】:

    • 是的,我做错了,但我尝试学习如何在点击属于第二个 viewController 的恢复按钮时显示第一个 viewController 的最后状态。
    • @Taha :对于那个你不需要加载你的第一个 View Controller 的东西,你可以存储你的最后一个状态和内部应用程序委托完成启动方法,你可以根据游戏状态加载你的 View Controller .
    • 您不需要“显示最后一个状态”,因为视图永远不会消失。因此,当您点击 resume 时,您关闭您之前呈现的第二个视图控制器;第二个视图控制器的视图消失了,出现了第一个视图、游戏及其所有状态,就像您之前离开它一样。这就是重点。
    • 这里展示的视图控制器是:apeth.com/iOSBook/ch19.html#_presented_view_controller
    • 现在我意识到我的方法是完全错误的。非常感谢您帮助这个新手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多