从子视图
辞退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];
我很高兴与任何帮助或想法。如果您认为应该提供更多信息,我可以添加更多代码。
可能尝试
[app.viewController dismissModalViewControllerAnimated:YES];
希望这有助于。
是的,我的解决方法与您的建议非常相似。基本上,我只是同一个控制器来解雇它。谢谢 – LKS 2012-04-11 07:19:30
+1的一个不错的答案:] – 2012-04-12 05:13:24
这可能会为你工作:
[self.view dismissModalViewControllerAnimated:YES];
这工作,如果你正在演示从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中的演示模式。你的“过渡风格”应该是“封面垂直”,“演示文稿”应该是“当前上下文”,否则你的模式可能出现在其他观点背后。
你确定自己是你的elcPicker吗?只需尝试[elcPicker dismissModalViewControllerAnimated:YES]; – 2012-04-11 07:00:32