dismissModalViewController无法正常工作

时间:2011-06-21 09:35:08

标签: iphone objective-c modalviewcontroller

我的应用程序处于工作状态但由于某种原因,当我在解除模态视图控制器时收到内存警告时,我的应用程序转到viewDidUnload。我已经浏览了所有代码,无法找到原因。

在我的应用程序中没有UINavigationController。

MainView的代码:

-(void) showInfo:(id) sender
{

  PhotoFeatureViewController *photoGalleryViewController = [[PhotoFeatureViewController alloc] initWithNibName:@"PhotoFeatureViewController" bundle:nil];

  photoGalleryViewController.modalPresentationStyle = UIModalPresentationFullScreen;
  photoGalleryViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
  [photoGalleryViewController loadPhotogalleryImages:[itemTagArray objectAtIndex:[detailInfoBtn tag]]];


  [self presentModalViewController:photoGalleryViewController animated:YES];
  [photoGalleryViewController release];
}

ModalView的代码:

-(IBAction) dismiss
{

  [self.parentViewController dismissModalViewControllerAnimated:YES];

}

5 个答案:

答案 0 :(得分:1)

在解雇时,请尝试:

[self dismissModalViewControllerAnimated:YES];

答案 1 :(得分:1)

试试这个

-(IBAction) dismiss 
{
    [self dismissModalViewControllerAnimated:TRUE];
}

答案 2 :(得分:1)

在photoGalleryViewController中添加dismiss功能。 并使用如下:

-(IBAction) dismiss {
    [self dismissModalViewControllerAnimated:YES];
}

答案 3 :(得分:0)

你已经得到了答案: -

[self dismissModalViewControllerAnimated:TRUE];

答案 4 :(得分:0)

您是否知道Apple文档建议使用带有ModalViewController的委托?如果你仍然遇到麻烦,这样的不同方法可能会有所帮助:

基本上,您为模拟呈现的视图控制器定义了委托属性(即photoGalleryViewController),并在创建photoGalleryViewController并以模态方式呈现它时将其设置为父视图控制器。在dismiss {}中,您将使用委托(父)来调用处理dismissModalViewController的方法。

它需要为photoGalleryViewController设置协议,并将协议和委托方法添加到父视图控制器的定义中,但这些额外的步骤并不费力,从长远来看,更好的设计可能会得到回报。

Apple Doc - 查看控制器程序员指南http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html#//apple_ref/doc/uid/TP40007457-CH111-SW14

使用委托设置模态视图控制器的建议: present modal view controller