我正在编写一个 iPhone 应用程序,并且在某个事件(例如,用户赢得游戏)后,我想在应用程序启动后立即将其重置为其初始状态。例如,再次执行 viewDidLoad() 等。在 Xcode 和 Objective C 中是否有一种简单的方法可以做到这一点?谢谢你。
问问题
222 次
1 回答
3
您负责应用程序的状态——如果您知道初始设置是什么,您应该能够将所有内容设置回该状态。没有简单的[UIApplication reset]
方法,但有一些技巧可以让工作更轻松:
当您想要重置应用程序时发布通知,并确保任何可能需要自行重置的对象(例如视图控制器)侦听该通知。
将您的初始化代码移动到不同的方法中,然后从您的
-init
方法和重置通知处理程序中调用它。您可以通过将视图属性设置为 nil 来让视图控制器重新加载其视图。下次访问该属性时,
-loadView
将调用该属性,然后将加载相关的 .xib 或创建必要的视图。在许多情况下,您可能只需将应用程序的数据模型重置为初始状态。您应用程序中的视图通常应该反映数据模型的状态,因此清除数据应该会导致视图也返回到它们的初始状态。
考虑一下为什么你真的需要这个。如果您在某处有一个“重置为出厂默认设置”按钮,这可能是有意义的,但这也可能表明需要更多设计。为什么用户不能只选择所有数据并将其删除?您持有用户可能希望以这种方式重置的状态是什么?
于 2011-06-28T22:12:31.480 回答