【发布时间】:2013-02-01 12:50:37
【问题描述】:
我有一个检查互联网连接的页面,然后根据结果执行各种操作。例如,如果没有互联网连接,下载文件的按钮被禁用,导航栏中不存在某些按钮,某些文本颜色不同等。
我想添加一个“刷新”按钮,以便用户可以连接到互联网并重新加载页面。
我的问题是,如何刷新视图?调用 [self viewDidLoad];肯定是不对的,即使这是所有逻辑都存在的地方。我是否需要从 superView 中删除视图并重新插入它,或者有没有办法在不删除的情况下做到这一点?
谢谢
【问题讨论】:
-
现在如何加载视图?来自
viewDidLoad?然后您可以将代码移动到新方法“重新加载”并调用它 -
您可能应该将该代码移至某个可达性通知回调,因为网络连接可以来来去去。
-
我确实考虑过将 viewDidLoad 代码移动到一个新方法,但该代码基于 Internet 连接以编程方式将元素添加到页面。如果我在单击刷新按钮后再次调用该方法,所有这些元素将被再次添加......一次又一次......一次又一次。当然,我可以先删除所有页面元素(按钮、标签、图像等),但这似乎有点适得其反,尤其是考虑到随着时间的推移会向代码中添加更多项目。没有简单的重新加载页面的说明吗?
-
@user857903 检查我的答案,为什么不在 .h 文件中声明所有按钮,然后相应地启用和禁用按钮。它不会使您的代码大量返工
-
对不起@P.J.不确定我是否理解。在我能够接受的所有答案中,我打勾的答案就是我将要做的那个……将元素放入 ViewDidLoad 并以新方法自定义它们。我知道您确实提到在 .h 文件中声明它们,但我无法接受附加到我原始问题的 cmets。你会打勾?不想冒犯任何人,尤其是在提供了所有帮助之后。
标签: objective-c refresh reload