我有一个超级视图,并添加了一个子视图进行选择。在超级视图(主视图)中,我执行以下操作:
    [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];
}

08-05 23:21