首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行viewDidAppear

如何运行viewDidAppear
EN

Stack Overflow用户
提问于 2012-07-28 10:48:01
回答 2查看 981关注 0票数 0

每次显示时,我都需要将一些数据加载到视图中。每次显示时间视图时,数据都会发生变化,因此我认为可以在方法viewDidAppear中加载数据。不幸的是,我发现并不是每次显示视图时都会调用viewDidAppear。

显示来自任何其他视图的视图的代码是....

代码语言:javascript
复制
[self clearView];
[self.view insertSubview:fifthViewController.view atIndex:4];

所以我想我可以把它改成下面的代码来运行viewDidAppear...

代码语言:javascript
复制
[[self.view insertSubview:fifthViewController.view atIndex: 4 viewDidAppear:YES];

不幸的是,这会导致错误“错误的接收器类型'void‘”

我需要做什么才能插入子视图并调用viewDidAppear?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-29 07:50:30

感谢您对这个问题的帮助。我决定在插入子视图的方法中添加一个viewDidAppear。

下面是目前为我工作的代码。

在最高级别视图控制器的.m文件中,以下代码设置viewDidAppear调用,然后插入第五个子视图。

代码语言:javascript
复制
-(IBAction) loadFifthView:(id)sender
{

[fifthViewController viewDidAppear:YES];  // sets up viewDidAppear


[self clearView];
[self.view insertSubview:fifthViewController.view atIndex:4];


}

准备好上面的代码片段后,位于第五个视图控制器的.m文件中的以下代码片段报告它正在工作。

代码语言:javascript
复制
- (void)viewDidAppear:(BOOL)animated
{

NSLog(@" xxxxxxxxxxxxxxxx  inside viewDidAppear ");


}
票数 0
EN

Stack Overflow用户

发布于 2012-07-28 11:11:41

如果您通过直接修改ViewController.view可见性来显示视图,那么您将无法获得viewDidAppear消息。需要使用ViewController方法来显示视图,例如将控制器推送到UINavigationController中,或者使用presentModalViewController方法。你可以使用像手动调用viewWillAppear:viewDidAppear:这样的技巧,但我不喜欢这个想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11697845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档