如何知道UIView何时完全隐藏?
问题描述:
我是通过切换隐藏的属性在两个视图之间切换。如何知道一个视图何时隐藏和/或可见?如何知道UIView何时完全隐藏?
尝试设置断点到viewDidLoad,viewDidUnload,viewWillAppear,viewWillDisappear,viewDidDisappear,becomeFirstResponder和resignFirstResponder。没有。当我设置hidden = YES/NO时,这些都不会被调用。
if (self.aController)
self.aController.view.hidden = YES;
if (self.bController)
self.bController.view.hidden = NO;
[self.bController viewWillAppear:YES];
我自己调用viewWillAppear,因为该视图是... UITabBarItem下子视图的子视图。苹果文档告诉说,该设置是不自然的,并且一些自动通知必须手动完成。这是否与未获得应该与隐藏状态相关的becomeFirstResponder和resignFirstResponder相同?
答
猜猜苹果文档是正确的 - 或至少提供一种方法来解决问题。因为我没有在子视图,系统就会自动通知,但我做什么,我只是“前进”的通知由我让他们在MAINVIEW:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// called at tab switch
if (self.aController)
[self.aController viewWillAppear:YES];
if (self.bController)
[self.bController viewWillAppear:YES];
}
- (void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// called at tab switch
if (self.aController)
[self.aController viewWillDisappear:YES];
if (self.bController)
[self.bController viewWillDisappear:YES];
}
不知道,如果这是“正确”的方式,但它作品。下一个问题,请!
必须检查,thanx! – JOM 2010-02-18 15:32:20
只是为了更新:好主意,但我无法使用它,因为从一个标签切换到另一个标签不会更改隐藏属性。我可以自己改变它,但调用viewWillAppear/viewWillDisappear是更容易的选择。不管怎样,不得不回想一下键值观察! – JOM 2010-02-25 15:14:39