如何从视图控制器视图返回到目标 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 值

iOS /目标C中的UINotification问题

接收到本地通知数据后如何创建使用目标 c 传递给主视图控制器?

如何在“更多”视图中切换到标签栏项目?