【问题标题】:How to detect that a ViewController is activated?如何检测 ViewController 是否被激活?
【发布时间】:2013-02-24 08:25:16
【问题描述】:

这是我学习使用 xcode 进行 ios 编程的第二天——所以这应该是一个简单的问题——只是我想不通。

我正在使用 StoryBoards 和带有 3 个选项卡项的 UITabViewController。 在第二个选项卡上,每当用户选择该选项卡时,我都想启动相机。

如何检测到第二个视图已激活?在这种情况下是否会触发事件?

【问题讨论】:

  • 实现视图控制器的viewWillAppear:viewDidAppear:方法。
  • 谢谢,它可以工作 - 但不完全符合我的要求......关键是在这个事件中我正在展示相机,以便用户可以拍照并在图片之后拍摄时,图像显示在 ViewController 的 ImageView 中。关键是在图像选择器出现后也会触发此事件......当视图从 tabcontroller 激活时,我如何才能完成某些操作,或者我如何区分激活源?
  • 然后解释你真正想要的与实际发生的情况相比。
  • ViewWillAppear 和 ViewDidAppear 有可能被多次调用,即使 View Controller 只加载了一次。如果可行,请尝试 ViewDidLoad。

标签: ios xcode uiviewcontroller activation uitabcontroller


【解决方案1】:

您也可以使用 ViewController 的 viewDidLoad 方法。在这个方法中做任何你需要做的事情:

- (void)viewDidLoad
{
}

【讨论】:

  • 正如我上面提到的,我需要在从 tabcontroller 激活视图时启动相机。不幸的是,每个应用程序生命周期只调用一次 viewDidLoad(据我所知),即使在拍摄照片之后也会调用 viewdidAppear....
  • 您提到要在选择第二个选项卡时激活相机。我相信每当您选择该选项卡时,都应该调用该选项卡的视图控制器的 viewDidLoad。不是这样吗?如果视图控制器已经加载到内存中,它可能不会被调用。在这种情况下,是的,viewWillAppear/viewDidAppear 是您最好的选择。有一些标志来确定何时启用相机,何时不启用。
  • 是的,在 viewWillAppear: 或 viewDidAppear: 中使用标志就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 2015-07-27
  • 2011-10-16
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多