【剑走偏锋】iOS使用NSUserDefaults从后往前传值(不用代理、block、单例等常用方法)

这里只讲思路,不贴代码。不知道为什么没有人用这个方法,有知道这个方法的缺点的,麻烦评论告诉我,不胜感激。。。


例如:登录页面,当你登录完成之后,考虑到用户体验,肯定是自动跳回主界面

而且好多app,登录和没有登录两种情况的主界面展示有可能不一样,如果登录可能有控件A,没有登录可能就换成了控件B。


这种情况可以使用传统的代理、block、单例等方法传个值到主页面,改变主页面的展示情况。

我这里告诉你其实可以使用NSUserDefaults。当登录成功时,存储到NSUserDefaults中一个BOOL值。

而在主界面中通过NSUserDefaults中的这个BOOL值判断该展示哪个控件。(加个判断即可)

当然,如果你把这个判断写到 - (void)viewDidLoad 中,肯定是起不到效果的

这个判断应该写到 - (void)viewWillAppear:(BOOL)animated 中,这样只要这个BOOL值发生变化,这里就会有相应的变化。

如果不知道为什么,请自行阅读UIViewController的生命周期的相关博客。

你可能感兴趣的:(ios开发,Block传值,代理传值)