如何从视图控制器视图返回到目标 c 中的应用程序委托控制器视图?
Posted
技术标签:
【中文标题】如何从视图控制器视图返回到目标 c 中的应用程序委托控制器视图?【英文标题】:How to return back from a view controller view to app delegate controller view in objective c? 【发布时间】:2011-12-13 12:17:17 【问题描述】:我添加了一个带有应用程序委托类按钮单击的视图。像这样:
在 UnifeyeMobile_templateAppDelegate.mm 中:
- (IBAction)onBtnImageTracking:(id)sender
// create our UnifeyeMobileViewController and present it
UnifeyeMobileImageTrackingViewController* unifeyeMobileViewController = [[UnifeyeMobileImageTrackingViewController alloc] initWithNibName:@"UnifeyeMobileImageTrackingViewController" bundle:nil];
unifeyeMobileViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[viewController presentModalViewController:unifeyeMobileViewController animated:YES];
[unifeyeMobileViewController release];
我想从添加的 UnifeyeMobileImageTrackingViewController 的视图返回到主应用程序委托类视图。我放了一个返回按钮。但我不知道该怎么做?请帮帮我。
【问题讨论】:
[self dismissModalViewControllerAnimated:YES]
?
【参考方案1】:
在模型视图控制器代码中,只需调用
[self dismissModalViewControllerAnimated:YES];
对于来自用户的交互,您希望使用它来关闭模式视图(例如按钮触摸事件)。
【讨论】:
谢谢,它可以工作,但我有内存问题,dealloc 方法出错。【参考方案2】:这可以通过两种方式完成,具体取决于您是否想添加一些特殊行为来隐藏您的模态视图:
简单(在模态视图内)
[self dismissModalViewControllerAnimated:YES];
如果你想添加一些自定义效果来隐藏模态视图,让 UnifeyeMobileImageTrackingViewController 持有对主视图的某种引用。这可以通过让你的主视图实现一些看起来像这样的委托协议来实现:
@protocol ModalViewDelegate <NSObject>
- (void) hideModal:(UIViewController*) modalViewController;
这样,您可以在显示之前像这样在 UnifeyeMobileImageTrackingViewController 上设置 modalViewDelegate:
unifeyeMobileViewController.delegate = self;
让主视图中的 hideModal 实现以你喜欢的方式隐藏模态视图。
希望这会有所帮助:)
【讨论】:
以上是关于如何从视图控制器视图返回到目标 c 中的应用程序委托控制器视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 viewcontroller viewdidload 方法触发视图中的功能 - 目标 c - iphone
目标 C:如何从 appdelegate 呈现模态视图控制器?
如何在目标 c 中的视图控制器上获取自定义 TableViewCell 值