Ios 每次运行时重新加载ViewDidLoad的方法

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

我正在用swift制作这个小游戏,游戏是用viewDidLoad设置的。每天的游戏都会略有不同,但这取决于viewDidLoad的运行情况。假设用户在第1天玩游戏,并将游戏保持活动状态到第2天,游戏在第2天将无法运行,因为viewDidLoad未运行。 为了让游戏正常运行,我需要在每次ApplicationIDBecMeactive时运行VieDidLoad,以确保它正常运行

我试着这样做:

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上,我想调用我的视图,但它已再次加载。

将尝试此操作。谢谢没问题,我希望这就是你需要的。如果我的答案有效的话,别忘了接受它,我会试试这个。谢谢没问题,我希望这就是你需要的。如果我的答案有效,别忘了接受它。