Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 卸下第二个viewcontroller';丢失邮件控制器后的s视图_Iphone - Fatal编程技术网

Iphone 卸下第二个viewcontroller';丢失邮件控制器后的s视图

Iphone 卸下第二个viewcontroller';丢失邮件控制器后的s视图,iphone,Iphone,第二个viewcontroller具有mailcontroller,在完成邮件后,它将向mainviewcontroller发布一条消息以删除第二个viewcontroller的视图。但这并没有发生。mailcontroller的出现和消失似乎会干扰mainviewcontroller的完成功能 第二视图控制器: [self dismissModalViewControllerAnimated:YES]; [[NSNotificationCenter defaultCenter] postNo

第二个viewcontroller具有mailcontroller,在完成邮件后,它将向mainviewcontroller发布一条消息以删除第二个viewcontroller的视图。但这并没有发生。mailcontroller的出现和消失似乎会干扰mainviewcontroller的完成功能

第二视图控制器:

[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个模态视图控制器。而且它在生产中运行得非常好