Iphone 卸下第二个viewcontroller';丢失邮件控制器后的s视图
第二个viewcontroller具有mailcontroller,在完成邮件后,它将向mainviewcontroller发布一条消息以删除第二个viewcontroller的视图。但这并没有发生。mailcontroller的出现和消失似乎会干扰mainviewcontroller的完成功能 第二视图控制器:Iphone 卸下第二个viewcontroller';丢失邮件控制器后的s视图,iphone,Iphone,第二个viewcontroller具有mailcontroller,在完成邮件后,它将向mainviewcontroller发布一条消息以删除第二个viewcontroller的视图。但这并没有发生。mailcontroller的出现和消失似乎会干扰mainviewcontroller的完成功能 第二视图控制器: [self dismissModalViewControllerAnimated:YES]; [[NSNotificationCenter defaultCenter] postNo
[self dismissModalViewControllerAnimated:YES];
[[NSNotificationCenter defaultCenter] postNotificationName:@"finish" object:nil];
主视图控制器:
-(void) finish:(NSNotification *)notif {
[MyviewController.view removeFromSuperview];
}
应延迟移除第二个视图控制器,直到模态控制器真正移除为止。我所做的工作如下:
[self dismissModalViewControllerAnimated:YES];
m_shouldHide = YES;
然后:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if ( m_shouldHide )
{
[self dismissModalViewControllerAnimated:YES];
m_shouldHide = NO;
}
}
你注册了通知了吗?发送名为“finish”的通知不会自动调用名为finish的方法…请包含显示mailcontroller的代码。我的“第二个控制器”也是模式控制器。因此,在您的情况下,ViewDidAspect处理程序应该抛出您想要的通知。或者在没有任何通知的情况下,只需执行[self.view removeFromSuperView],您就可以在对第二个viewcontroller的视图执行任何操作之前等待mailcontroller消失。但是我认为你不需要在视图中出现另一个dissmissModalView。在我的例子中,我需要,因为我必须删除2个模态视图控制器。而且它在生产中运行得非常好