【问题标题】:Call a function when a view controller is on top当视图控制器位于顶部时调用函数
【发布时间】:2014-08-21 05:38:05
【问题描述】:

我想知道当视图控制器加载到屏幕时是否有一个方法会调用。

例如,用户按下按钮并加载第二个视图控制器。当视图控制器出现时,它会自动运行一个函数。

【问题讨论】:

  • 您可以利用 -(void) viewDidAppear:(BOOL)animated{} 在屏幕上加载 ViewController。这将等到它显示在屏幕上才能执行代码
  • 做到了。谢谢!
  • 我添加了其他方法的答案,如果您需要它们在 viewController 生命周期的不同时间运行,这些方法可能对您有所帮助!

标签: ios objective-c viewcontroller


【解决方案1】:

您可以在 ViewController 中使用多种方法来运行函数,具体取决于您何时需要运行它们。在你的情况下,你应该使用

-(void) viewDidAppear:(BOOL)animated

这将在 viewController 出现在屏幕上时运行。一定要在方法内部也调用[super viewDidAppear:animated]

其他可能派上用场的方法:

-(void) viewDidLoad
-(void) viewWillAppear:(BOOL)animated
-(void) viewWillDisappear:(BOOL)animated
-(void) viewDidDisappear:(BOOL)animated

【讨论】:

  • 值得注意的是,viewDidLoad 只会在每次呈现视图控制器时运行一次,而其他方法将在每次视图控制器出现/消失时调用。例如,如果您的视图控制器在导航控制器堆栈中并且您弹出顶部视图控制器,则 viewDidLoad 将不会在其下方的 VC 上再次运行。同样,如果你有一个 UITabBarController 并且你在视图控制器之间切换,viewDidLoad 只会在你第一次加载每个时运行,但 viewWillAppear 会在你每次切换时运行。
猜你喜欢
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-14
相关资源
最近更新 更多