2012-04-11 69 views
2

辞退ModalViewController我有函数调用的一个问题:从子视图

[self dismissModalViewControllerAnimated:YES]; 

在MainViewController,我可以启动图片选择和罢免点击取消按钮如常。

(IBAction) LaunchInMain:(id)sender{ 

    MainAppDelegate *app = (MainAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    //elcPicker is a customized image picker 
    [app.viewController presentModalViewController:elcPicker animated:YES]; 
    [elcPicker release]; 
    [albumController release]; 

- (void)elcImagePickerControllerDidCancel:(ELCImagePickerController *)picker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

现在,而不是启动它直接在它主,我首先添加一个子视图,并使用相同的启动方法从启动子视图图像拾取。

问题:

图片选择器不能被驳回,子视图不能被再次显示。所以无论点击什么,屏幕都会保留在图像选择器中。

我一直在试图与其他一些类似的呼叫没有任何成功:

[self dismissModalViewControllerAnimated:YES]; 

我很高兴与任何帮助或想法。如果您认为应该提供更多信息,我可以添加更多代码。

+1

你确定自己是你的elcPicker吗?只需尝试[elcPicker dismissModalViewControllerAnimated:YES]; – 2012-04-11 07:00:32

回答

3

可能尝试

[app.viewController dismissModalViewControllerAnimated:YES];

希望这有助于。

+0

是的,我的解决方法与您的建议非常相似。基本上,我只是同一个控制器来解雇它。谢谢 – LKS 2012-04-11 07:19:30

+0

+1的一个不错的答案:] – 2012-04-12 05:13:24

2

这可能会为你工作:

[self.view dismissModalViewControllerAnimated:YES]; 
0

这工作,如果你正在演示从UISplitViewController模态的视图。它也可以在其他许多方面应用...

首先,在您的appDelegate您的.h文件中创建一个实例,(AppDelegate_iPad *appDelegate),然后把这个在您的viewDidLoad或类似的方法:

ipadDelegate = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; 

现在,目前的第一模式的看法是这样的:

YOURVC *vc = [[YOURVC alloc] initWithNibName:@"YOURVC" bundle:nil]; 
    [ipadDelegate.splitViewController presentModalViewController:vc animated:YES]; 
    [vc release]; 

假设你有一个子视图,就像一个UITableView,并希望解雇从didSelectRowAtIndexPath方法的模式。所有你需要做的要关闭模式与子视图是重新创建你的子视图的.H内的另一个ipadDelegate实例(如果需要),参考[[UIApplication的sharedApplication]代表],和罢免:

[ipadAppDelegate.splitViewController dismissModalViewControllerAnimated:YES]; 

从本质上讲,尽可能长时间地使用你的appDelegate的控制器来呈现和消除模态,如果你需要维护一个对presentationViewController的持久引用......因为以上所有的东西都不适用于我的情况。

如果您正在使用您的ipadDelegate进行演示,请确保您检查了MainWindow_iPad.xib中的演示模式。你的“过渡风格”应该是“封面垂直”,“演示文稿”应该是“当前上下文”,否则你的模式可能出现在其他观点背后。