Ios 每次运行时重新加载ViewDidLoad的方法
我正在用swift制作这个小游戏,游戏是用viewDidLoad设置的。每天的游戏都会略有不同,但这取决于viewDidLoad的运行情况。假设用户在第1天玩游戏,并将游戏保持活动状态到第2天,游戏在第2天将无法运行,因为viewDidLoad未运行。 为了让游戏正常运行,我需要在每次ApplicationIDBecMeactive时运行VieDidLoad,以确保它正常运行 我试着这样做:Ios 每次运行时重新加载ViewDidLoad的方法,ios,iphone,xcode,swift,viewdidload,Ios,Iphone,Xcode,Swift,Viewdidload,我正在用swift制作这个小游戏,游戏是用viewDidLoad设置的。每天的游戏都会略有不同,但这取决于viewDidLoad的运行情况。假设用户在第1天玩游戏,并将游戏保持活动状态到第2天,游戏在第2天将无法运行,因为viewDidLoad未运行。 为了让游戏正常运行,我需要在每次ApplicationIDBecMeactive时运行VieDidLoad,以确保它正常运行 我试着这样做: func applicationDidBecomeActive(application: UIAppli
func applicationDidBecomeActive(application: UIApplication)
{
myViewController?.viewDidLoad()
}
我还尝试像这样包装viewDidLoad中的代码,并在ApplicationIDBecMeactive中运行它。但那不行
override func viewDidLoad()
{
func refreshView()
{
//all the code goes here
}
}
知道我能做什么吗?将视图控制器设置为侦听ApplicationIDBecomeActive通知,并在收到通知时运行配置方法
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refreshView:",
name: UIApplicationDidBecomeActiveNotification,
object: nil)
将视图控制器设置为侦听ApplicationIDBecMeactive通知,并在收到该通知时运行配置方法
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refreshView:",
name: UIApplicationDidBecomeActiveNotification,
object: nil)
viewDidLoad方法并不意味着加载多次,当view首次创建加载到内存时,viewController的每个生命周期只调用一次,这种方法不正确,请反复调用
无需反复加载viewDidLoad即可实现所需功能,将refreshView方法移出viewDidLoad并在需要时调用它,您可以从viewDidLoad中调用它一次,然后在需要时再次调用它
您可以响应应用程序通知方法,如
UIApplicationWillEnterForegroundNotification或
UIApplicationIDBecMeactiveNotification,然后确定是否要刷新视图,如果要刷新视图,只需调用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()
}
}
viewDidLoad方法并不意味着加载多次,当view首次创建加载到内存时,viewController的每个生命周期只调用一次,这种方法不正确,请反复调用
无需反复加载viewDidLoad即可实现所需功能,将refreshView方法移出viewDidLoad并在需要时调用它,您可以从viewDidLoad中调用它一次,然后在需要时再次调用它
您可以响应应用程序通知方法,如
UIApplicationWillEnterForegroundNotification或
UIApplicationIDBecMeactiveNotification,然后确定是否要刷新视图,如果要刷新视图,只需调用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()
在我的函数中,我想调用我的视图,但它再次加载了视图。我有同样的问题,但我通过调用解决了它
self.viewDidLoad()
在我的Func上,我想调用我的视图,但它已再次加载。将尝试此操作。谢谢没问题,我希望这就是你需要的。如果我的答案有效的话,别忘了接受它,我会试试这个。谢谢没问题,我希望这就是你需要的。如果我的答案有效,别忘了接受它。