通过 AppDelegate applicationWillEnterForeground 从头开始重新加载 UIViewController
Posted
技术标签:
【中文标题】通过 AppDelegate applicationWillEnterForeground 从头开始重新加载 UIViewController【英文标题】:Reloading UIViewController from scratch via AppDelegate applicationWillEnterForeground 【发布时间】:2014-11-08 12:58:06 【问题描述】:在我的 XCode 项目中,我正在寻找一个非常简单的解决方案:
当applicationWillEnterForeground
被调用时,我希望我的主(也是唯一的)viewcontroller
重新加载,就好像应用程序从头开始启动一样,原因是我希望它重新计算当时可能已经改变的一些事情,而应用程序在后台,以响应应用程序启动时检测到的时间变化。我希望这种情况发生,而不是视图只是以最后一次看到的状态重新出现
viewcontroller
被命名为 TMViewController
我找到的答案只是告诉我我必须在 AppDelegate 的 applicationWillEnterForeground
部分重新加载 viewcontroller
,但不知道如何执行此操作
我找到了解释如何从网络重新加载各种元素、标签、网络视图和数据的答案。这些比我需要的要复杂得多,我真的看不到大海捞针
我需要做的只是 applicationWillEnterForeground
重新加载 viewcontroller
就好像它的 viewDidLoad
已被调用(我知道这本身不是一个好的解决方案,不是说我知道该怎么做!)
我想简而言之,我很难理解在 AppDelegate
和 viewcontroller
文件的 h & m 文件中需要做什么来完成此操作
任何帮助将不胜感激
【问题讨论】:
【参考方案1】:self.window.rootViewController = [[TMViewController alloc]intWithNibName:@"myNib" bundle:nil];
【讨论】:
但我应该把它放在哪里? in - (void)applicationWillEnterForeground:(UIApplication *)application - 根据您的问题,“我找到的答案简单地告诉我,我必须在 AppDelegate 的 applicationWillEnterForeground 部分重新加载视图控制器,但不是如何做到这一点”:) 我试过了,但我得到了:!No visible@interface for 'TMViewController' 声明了选择器'intWithNibName:bundle:' 我意识到我可能在其他地方遗漏了一些非常简单的东西,整个应用程序都是编写的,但我真的坚持这一点。以上是关于通过 AppDelegate applicationWillEnterForeground 从头开始重新加载 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章
通过 UIButton 从 Appdelegate 导航到另一个视图
如何通过 AppDelegate 升级使功能可用于大于 8 的 iOS
如何通过 TabBarController => NavbarController 从 Appdelegate 呈现视图控制器