问题标签 [viewdidappear]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10625 浏览

iphone - Correct time to call viewDidAppear manually?

I have a UITableViewController in my app, which is added to the view hierarchy directly. After the view appears, I want to scroll to a specific cell. My solution would be to call the code for scrolling in -[viewDidAppear].

According to Apple's docs I have to call the method manually:

If the view belonging to a view controller is added to a view hierarchy directly, the view controller will not receive this message. If you insert or add a view to the view hierarchy, and it has a view controller, you should send the associated view controller this message directly.

The question is: When is the right time to call it manually?

Calling it from the parent view controller's -[viewDidAppear] leads to a crash when I try to do the scrolling because apparently, the table view actually didn't yet appear and therefore thinks it has no sections to scroll to.

0 投票
2 回答
1665 浏览

uinavigationcontroller - 在 Tabbarcontroller>NavigationController>UITableView 中未触发 viewDidAppear

我目前在其中一个选项卡上设置了一个带有导航控制器的选项卡栏控制器,然后我为该导航控制器视图设置了一个 UITableView 笔尖。所有这些都是通过 IB 设置的,我希望保持这种状态。有点像本教程http://twilloapp.blogspot.com/2009/05/how-to-embed-navigation-controller.html 现在视图在调用 ViewDidLoad 时完美加载。但是当我通过代码 IE 加载更多视图时

如果我尝试使用导航工具栏返回,它会很好地返回到我以前的视图现在我需要在返回时刷新 tableview,但调用viewDidAppear不起作用。

我尝试添加UINavigationDelegate到与ViewControllertableview 相同的类,然后调用- (void)navigationController:(UINavigationController *)navigationController didShowViewController:

但这没有用。我还尝试添加与标签栏控制器相同的委托并在navigationController didShowViewController:那里添加相同的委托,但也失败了。

每次视图加载时如何让这个表刷新?

0 投票
3 回答
6255 浏览

iphone - UIImagepickerController [takepicture] 模态视图消失没有委托回调

更新:

这已经回答了。这是我自己的愚蠢,可能不值得再读这个问题了。哈哈。

问题:

对,所以我有这个 UIViewController(master) 子类,它有一个 UIImagepickerController(camera),它还有一个 UIView(overlayView)。Master将相机设置为仅具有自定义cameraOverlay的相机,隐藏自定义控件等

除了我尝试以编程方式拍照之外,一切似乎都很好。发生的情况是overlayView调用主控并触发拍照,然后我听到快门声音并且光圈关闭,相机似乎自行关闭(我在我的代码中坚决不这样做)然后我的viewDidAppear被调用又是我的主人。

有人知道发生了什么吗?

在得到人们的一些帮助建议后,我可以说相机没有被释放。

我还设法通过检查 viewDidAppear 方法中的布尔值来阻止 exec_bad_access 第二次调用 [presentmodal....]。

我仍然有模态视图消失的问题,任何帮助,再次大声笑?

0 投票
3 回答
11680 浏览

iphone - 如何在 viewDidAppear 中向 UIView 添加动画?

我尝试向 viewDidLoad 和 viewDidAppear 添加动画,但它不起作用:

为什么?

0 投票
3 回答
10426 浏览

iphone - 我怎样才能只调用一次 ViewDidAppear?

当用户启动应用程序时,我希望它显示 stockholm.xib 并在这里执行:

但是当用户使用以下命令关闭 stockholm.xib 时:

动画完成后,应用程序崩溃。我猜原因是 viewDidAppear 调用了两次,因此它试图打开最近关闭的 xib 文件。

现在,我怎么能称视图确实只出现过一次?这样当用户从斯德哥尔摩回来时不会调用 viewDidAppear 吗?任何其他解决方案?

谢谢 :)

0 投票
3 回答
18207 浏览

iphone - 我是否以编程方式在 ViewDidAppear、ViewDidLoad、ViewWillAppear、构造函数中添加子视图?

我试图从 Apple 的粗略文档中找出哪种方法是初始化并将我的 Views 控件添加到控制器视图的最佳位置。

使用 winforms 相当简单,因为它们总是在内部初始化InitializeDesigner,在构造函数中调用。如果可能的话,我正在尝试匹配这种模式的可靠性。

我大部分时间都在和我一起工作——如果这会影响到这一切的话UIViewControllersUITableViewControllersUINavigationController

这是一个例子:

当我将一些 UIControls 添加到不同位置的视图时,我得到了混合结果。有时视觉滞后,有时网络视图隐藏在某个地方。

添加它们是否有一般规则?

0 投票
4 回答
2209 浏览

iphone - iPhone 抖动问题:加载 viewController 时未调用 viewDidAppear

我正在尝试检测 iPhone 设备上的震动,因此对于我所读到的内容,我需要将我的视图控制器设置为 viewDidAppear 方法的第一响应者。这个方法应该被自动调用,但由于某种原因,这个方法永远不会被调用。仅调用 viewDidLoad。

这是我的代码(我只放了相关部分):

BuildHouseViewController.h:

@interface BuildHouseViewController : UIViewController {

BuildHouseViewController.m:

我在 viewDidAppear 方法上添加了断点,它从未被调用过。永远不会检测到震动,我想这是因为从未调用过此方法,因此视图控制器永远不会成为第一响应者。我不明白为什么会这样。

任何帮助将不胜感激。

编辑:

我使用以下方法从另一个视图调用视图:

视图显示在屏幕上

0 投票
1 回答
1502 浏览

iphone - iphone ViewDidAppear 在子视图中?

我有一个视图“A”,它加载一个子视图“B”,它加载一个子视图“C”

为什么 ViewDidAppear 事件会为“A”触发,而不是为“B”或“C”触发

ViewDidLoad 确实为 A、B、C 触发

0 投票
1 回答
3313 浏览

uiactivityindicatorview - 获取行数据时在表视图中显示活动指示器

我正在从 tableview1.row 导航到 tableview2,它有很多行被获取。鉴于加载时间约为 3 秒,我希望导航在选择 tableview1.row 后立即滑入 tableview2,然后在 tableview2 上方显示 UIActivityIndi​​catorView,同时获取数据并在其基础表视图中呈现。注意,tableview2 实际上是父 UIView 的子视图(而不是父 UITableView)。

我看过这篇文章:Activity indicator should be display when navigating from UITableView1 to UITableView2

...它给出了将数据获取周围的活动指示器 start 和 stopAnimating 调用添加到 tableview2 的 viewDidLoad 的指令。

问题是,我不确定上述解决方案如何工作,因为 viewDidLoad 在 tableview2 明显滑入视图之前运行和完成。

另外,我还尝试在 IB 中的 tableview2 上添加一个活动指示器,并将 IBOutlet 指示器的开始/停止动画代码添加到 viewDidAppear 中。发生的情况是数据提取运行,我可以看到指示器在旋转,但在提取结束时,表视图为空。似乎 viewDidAppear 为时已晚,无法将数据添加到表视图中,因为 cellForRowAtIndexPath 等已经触发。

任何人都可以提出任何建议吗?我很可能在这里遗漏了一些明显的东西(我现在快凌晨 5 点了,我觉得我的大脑很糊状)。我应该从 viewDidAppear 重新触发 cellForRowAtIndexPath 等吗?我的表视图是子视图而不是父视图的问题吗?

谢谢

0 投票
3 回答
1105 浏览

iphone - 使用“viewDidLoad”我的 viewController 需要很长时间才能出现!

当我加载我的视图控制器时,我使用“viewDidLoad”方法来初始化我的视图,但这需要很长时间才能使视图出现。所以我有想法使用“viewDidAppear”方法来加速我的视图的出现,但加载每次我推送我的视图(这是正常的)或我弹出它(这是我的问题)时,关于我的视图的信息现在都会加载到内存中你有什么想法吗?