我有一个超级视图,并添加了一个子视图进行选择。在超级视图(主视图)中,我执行以下操作:
[self.view addSubview:cityViewController.view];
在cityView中,当我完成需要做的事情时,我只是在做
self.view removeFromSuperView。
问题是,从超级视图内部,我如何知道子视图何时已将其自身移除。
最佳答案
有几种方法,但是说实话,由于当前视图控制器(我们称其为main)只是添加cityViewController
的视图,保持将视图添加/删除到当前视图控制器的处理,并且只有主控制器致电[cityViewController.view removeFromSuperView]
这样,您可以在收到此通知时执行所需的任何代码(无论是触发方法还是UINotification
)。
-编辑示例UINotification代码-
主目录
...
//Define cityViewController as an iVar and alloc/init it
[[UINotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishView:) name:@"DidFinishView" object:nil];
[self.view addSubview:cityViewController.view];
...
-(void) didFinishView:(NSNotification *)notification {
[cityViewController.view removeFromSuperView];
}
CityViewController.m
-(IBAction) doneButtonClick:(id) sender {
[[NSNotificationCenter defaultCenter] postNotificationName:@"DidFinishView" object:nil];
}