一种在每个 运行 swift 上重新加载 ViewDidLoad 的方法
A way to reload the ViewDidLoad on each run swift
我正在用 swift 制作这个小游戏,游戏是使用 viewDidLoad 设置的。每天的游戏都应该略有不同,但这取决于 viewDidLoad 运行s。因此,假设用户在第 1 天玩游戏并保持游戏活跃到第 2 天,游戏将在第 2 天无法运行,因为 viewDidLoad 不是 运行。
为了让游戏正常运行,我需要 运行 VieDidLoad 每次 "applicationDidBecomeActive",以确保它 运行 是它应该的。
我试过这样做:
func applicationDidBecomeActive(application: UIApplication)
{
myViewController?.viewDidLoad()
}
我还尝试像这样包装我在 viewDidLoad 中的代码,并 运行 它在 applicationDidBecomeActive 中。但那不行。
override func viewDidLoad()
{
func refreshView()
{
//all the code goes here
}
}
知道我能做什么吗?
将您的视图控制器设置为侦听applicationDidBecomeActive
通知和运行 接收通知时的配置方法
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refreshView:",
name: UIApplicationDidBecomeActiveNotification,
object: nil)
viewDidLoad
方法不意味着要加载多次,当视图首次创建加载到内存时,每个 viewController
的生命周期只会调用一次,这是不正确的方法再次调用又一次。
无需一次又一次地加载 viewDidLoad
即可实现您想要的,将您的 refreshView
方法移出 viewDidLoad
并在需要时调用它,您可以从 [= 调用一次12=] 之后您可以在需要时再次调用它。
您可以响应应用程序 notification
方法,例如
UIApplicationWillEnterForegroundNotification
或在
UIApplicationDidBecomeActiveNotification
然后弄清楚你是否要刷新视图,如果你想刷新视图只需调用你的 refresView
方法。
您的代码应如下所示
override func viewDidLoad()
{
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "OnAppBecameActive", name: UIApplicationDidBecomeActiveNotification, object: nil)
refreshView()
}
func refreshView()
{
//all the code goes here
}
并添加此方法
func OnAppBecameActive()
{
// Add logic here to check if need to call refresh view method
if needToRefreshView
{
refreshView()
}
}
我也有同样的问题,但是我打电话解决了
self.viewDidLoad()
在我的 Func 上,我想调用我的视图并再次从中加载。
我正在用 swift 制作这个小游戏,游戏是使用 viewDidLoad 设置的。每天的游戏都应该略有不同,但这取决于 viewDidLoad 运行s。因此,假设用户在第 1 天玩游戏并保持游戏活跃到第 2 天,游戏将在第 2 天无法运行,因为 viewDidLoad 不是 运行。 为了让游戏正常运行,我需要 运行 VieDidLoad 每次 "applicationDidBecomeActive",以确保它 运行 是它应该的。
我试过这样做:
func applicationDidBecomeActive(application: UIApplication)
{
myViewController?.viewDidLoad()
}
我还尝试像这样包装我在 viewDidLoad 中的代码,并 运行 它在 applicationDidBecomeActive 中。但那不行。
override func viewDidLoad()
{
func refreshView()
{
//all the code goes here
}
}
知道我能做什么吗?
将您的视图控制器设置为侦听applicationDidBecomeActive
通知和运行 接收通知时的配置方法
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refreshView:",
name: UIApplicationDidBecomeActiveNotification,
object: nil)
viewDidLoad
方法不意味着要加载多次,当视图首次创建加载到内存时,每个 viewController
的生命周期只会调用一次,这是不正确的方法再次调用又一次。
无需一次又一次地加载 viewDidLoad
即可实现您想要的,将您的 refreshView
方法移出 viewDidLoad
并在需要时调用它,您可以从 [= 调用一次12=] 之后您可以在需要时再次调用它。
您可以响应应用程序 notification
方法,例如
UIApplicationWillEnterForegroundNotification
或在
UIApplicationDidBecomeActiveNotification
然后弄清楚你是否要刷新视图,如果你想刷新视图只需调用你的 refresView
方法。
您的代码应如下所示
override func viewDidLoad()
{
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "OnAppBecameActive", name: UIApplicationDidBecomeActiveNotification, object: nil)
refreshView()
}
func refreshView()
{
//all the code goes here
}
并添加此方法
func OnAppBecameActive()
{
// Add logic here to check if need to call refresh view method
if needToRefreshView
{
refreshView()
}
}
我也有同样的问题,但是我打电话解决了
self.viewDidLoad()
在我的 Func 上,我想调用我的视图并再次从中加载。