问题标签 [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.
ios - UIViewController 在 viewWillAppear 和 viewDidAppear 之间调整自身大小?
我的项目中有一个非常奇怪的错误。我有一个UIScrollView
主要的,大的观点。在它里面,我有一个UIViewController
(not UITableViewController
) ,它有一个UITableView
实例变量,以及一些 miscellaneous UIButtons
。我已将视图控制器的视图框架设置为CGRectMake(0, 64, 320, 388)
,因为它上方有一个标签栏(这还没有功能)。起初它工作得很好,看起来也很棒,但是一旦我呈现并关闭 a modalViewController
(因此重新加载UIViewController
,我相信),它会将UIViewController
' 的视图推到屏幕顶部(默认情况下将其设置为CGRectMake(0, 0, 320, 460)
,但因为我已经设置wantsFullScreenLayout
到NO
,它现在将其设置为CGRectMake(0, 0, 320, 388)
。
我已经将此问题跟踪到 和 之间的某个viewWillAppear
地方viewDidAppear
。这是我解雇后的确切日志modalViewController
:
2011-05-06 11:08:39.974 Campus[1570:207] Frame is 0.000000, 64.000000, 320.000000, 388.000000 (viewWillAppear)
2011-05-06 11:08:40.378 Campus[1570:207] Frame is 0.00.0.0. 320.000000, 388.000000 (viewDidAppear)
如您所见,框架在 中很好viewWillAppear
,但在viewDidAppear
.
我做了以下事情来尝试修复它: - 在、、和
中设置所需的框架。
- 将我的设置为.
- 杀死我并调用我的方法覆盖。loadView
viewDidLoad
viewWillAppear
viewDidAppear
wantsFullScreenLayout
NO
[super viewWillAppear:]
[super viewDidAppear:]
我该怎么办?!?!?
iphone - viewDidAppear 在它实际出现之前调用?
我知道这个问题听起来与此类似,但我已经知道解决方法。这更像是一个分析问题。
上面的链接是一个特定于 的问题UITabBarController
,但我也观察了UINavigationController
, 当 I 时的行为pushViewController:... animated:NO
,即。没有动画。
所以我的问题是为什么视图出现在viewDidAppear
方法之后,虽然它的名字暗示,并且定义说,该视图已经出现(定义说视图已经添加到窗口中)。
我在方法中标记了一个断点以查看调用堆栈,这是推送到的日志UINavigationController
:
这是日志:
iphone - iOS 不同的输出,无论是在模拟器还是在设备上运行
我又遇到了一个超级奇怪的问题。无论是在模拟器上还是在 iPhone 上运行应用程序,我都会得到不同的输出。
查看这些控制台日志:
iPhone 首次运行,点击了第一个职业单元格
模拟器 第一次运行,点击第一个职业单元格
似乎在 iPhone 上,方法是在方法之后webViewDidFinishLoad
加载的。viewDidAppear
但是在模拟器上是在方法之前webViewDidFinishLoad
加载的。viewDidAppear
是什么赋予了?
编辑:更奇怪的是,这仅在我单击加载具有我的 UIScrollView 和 UIWebView 的视图控制器的第一个单元格时发生。我单击该webViewDidFinishLoad
方法的所有后续单元格都在该方法之前加载viewDidAppear
。
有什么办法可以纠正这个吗?
ios - iOS - viewDidAppear:显示 UITableView 时延迟
我有一个奇怪的问题。我有一个选项卡栏应用程序,其中我为每个不同的选项卡使用导航控制器,每个导航控制器都有自己的视图控制器来显示一些内容。
当我触摸一个选项卡时,我希望该选项卡立即与视图一起加载,并且在它加载后(viewDidAppear:
)我希望它在 viewDidAppear: 方法中下载一些数据。
为了测试这个功能,我设置了以下方法。我正在使用 aNSThread
来模拟在加载视图时应该在后台完成的一些冗长操作。然后我为 NSArray *test (nonatomic, retain) 分配一些测试数据并重新加载表。
我正在重新加载表格,因为在该viewDidLoad
方法中我将表格设置为仅包含一个空字符串(这是因为我读到该表格是在调用 viewDidAppear: 之前设置的。
所以我的预期行为应该是,当触摸这个特定选项卡时,它应该立即加载,然后在 10 秒后它应该填充来自 viewDidAppear: 方法的表数据。但行为是,当触摸此选项卡时,它会等待 10 秒,然后显示填充了表数据的视图。
ios - Grand Central Dispatch、viewWillAppear、viewDidAppear 执行顺序混乱
我在我的标签栏应用程序中使用 GCD 进行后台下载。
第一步是进行一些后台下载-viewWillAppear:
(在加载视图之前设置一些基本数据)。
第二步是把剩下的后台下载进去-viewDidAppear:
出于某种原因,调度块 in 在调度块 in之前被-viewDidAppear:
调用。-viewWillAppear:
这只会在第一次加载应用程序后使用 GCD 后台方法切换到选项卡后发生一次。切换到另一个选项卡,然后使用 GCD 后台方法切换回选项卡。第三次(以及随后的所有其他时间)我切换回来的时候它按预期工作(-viewWillAppear:
先开火然后再开火-viewDidAppear:
)。
以下是我的代码(-viewWillAppear:
和-viewDidAppear:
)的摘录:
-viewWill出现:
-viewDidAppear:
检查Pastie的调试日志。
uiwebview - UIWebView:在选项卡屏幕中加载请求的位置?viewDidLoad 还是 viewDidAppear?
我有一个标签栏控制器,一个标签屏幕包含一个 web 视图,加载一个请求说 google.com,当它加载时(即在 webview 的 didload 委托方法调用之前),如果我切换到另一个标签然后返回,微调器仍在运行但页面从未加载,我猜 viewDidLoad 只调用一次,所以我应该将加载代码放在 viewDidAppear 中,还是有办法解决这个问题?
谢谢!
objective-c - 目标 C:在 viewDidAppear 中触发 IBAction showInfo
我使用 Xcode 4 中的实用程序应用程序模板创建了我的应用程序。
我希望我的应用程序在第一次启动时显示反面,以便用户可以输入 URL。
在我的 mainViewController 我有:
记录“无 url,翻转”,调用 showInfo 方法,但不翻转。我究竟做错了什么?
objective-c - viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear 指南
是否有正确使用这些方法的指导方针?特别是,我想知道我可以在其中使用什么类型的代码。
例如,如果我必须调用从 WS 检索数据的方法,我必须在哪里调用它?我在哪里可以注册/取消注册 NSNotification?等等
iphone - 在基于标签栏的应用程序中未调用 ViewDidAppear
我有个问题。我正在开发一个基于标签栏的应用程序。在这个应用程序中,[self.view addSubview:newVC.view]
当我们想要导航到新视图时调用。newVC 是我们要显示的新视图的视图控制器。[self.view removeFromSuperview]
当我们想回到以前的视图时,我们也会使用。
所以换句话说,没有导航控制器。现在的问题是我想更新以前的视图。由于我们使用的是[self.view removeFromSuperview]
,viewDidAppear
之前的视图不会被调用,因此我们无法刷新该视图。
我知道我们使用的方法有缺陷,但由于它是一个大型应用程序,并且更改它以实现导航控制器需要很多时间,所以我需要你帮助我找到这个问题的解决方案。如何在从其子视图调用时调用viewDidLoad
或viewDidAppear
或前一个视图?[self.view removeFromSuperview]
xcode - 应用程序启动时 viewDidAppear 中的 performSelector:withObject:afterDelay 不起作用
我必须将一些代码从 viewDidAppear 移动到一个新的选择器以在 0.1f 秒后触发。所以我做了类似的事情:
当我启动应用程序时,什么也没有发生,“开始显示”没有出现。如果我改变视图然后回到第一个视图,它就可以工作。
有人知道为什么吗?