有没有办法告诉视图何时不再位于视图堆栈之上?例如,模态视图被推到视图堆栈的顶部?
所以我有一个带有表视图的视图,并且有一些事件会导致显示模态。当模态被解除时,我想重新加载表格中的数据。
是否有我可以订阅的活动来实现这一目标?也许这对KVO来说是可能的吗?
答案 0 :(得分:1)
您可以使用NSNotification系统。
在你的UITableViewController中,你将注册NSNotification(让我们假设NSString * notifName = @“dismissmv”):
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hasDismissed:) notifName object:nil];
并实施
-(void)hasDismissed:(NSNotification *)notification
然后当您解除视图控制器时,您将发布通知:
[self dismissViewControllerAnimated:true completion:^{[[NSNotificationCenter defaultCenter] postNotificationName:notifName object:nil];}];
答案 1 :(得分:0)
您可以使用subviews
属性在容器视图中找到子视图的顺序。
来自文档:
@property(非原子,只读,复制)NSArray *子视图
讨论
您可以使用此属性检索与之关联的子视图 您的自定义视图层次结构。数组中子视图的顺序 在视图0处反映其在屏幕上的可见顺序 是最后面的观点。
对于在UIKit和其他系统框架中声明的复杂视图,任何 视图的子视图通常被视为私有且受制于 随时改变。因此,您不应该尝试检索或 修改这些类型的系统提供的视图的子视图。如果你这样做, 在将来的系统更新期间,您的代码可能会中断。