0

我对 iPhone 应用程序开发非常陌生。
我正在尝试从另一个视图中关闭/删除一个视图,但有些它对我不起作用。

我应该如何从另一个视图控制器中关闭/删除视图控制器。

有两种观点AB
View正在使用以下代码 A打开视图。B

ViewBScreenController *mViewB = [[ViewBScreenController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:mViewB animated:YES];

但是有些我无法B从视图控制器 A关闭视图。
怎么做?

- - 更新 - -

正如答案中所问的那样,为什么我需要从视图 A 关闭视图 B,因为我正在从应用层下面获取事件到视图控制器 A,并且在某些事件上我想从视图 A 关闭视图 B。

也可以向视图 B 发送一些事件以关闭自身。

谢谢。

4

5 回答 5

1

在一个

- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(XXXXX)        name:@"RRRR" object:nil];
}

-(void)XXXXX{

/* any method  you wont */
[self dismissModalViewControllerAnimated:YES];
//////////////////////////

}

在B或C或D等......

-(IBAction)Btn:(id)sender{

[[NSNotificationCenter defaultCenter] postNotificationName:@"RRRR" object:nil];

}

它会成功的

于 2012-12-25T16:34:58.657 回答
0

您使用的方法已弃用,请改用:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion;  

有了这个,你从 A 呈现 B。
当你想回到 A 时,你做相反的事情:你从 B 呈现 A。
如何?有几种方法,例如使用观察者通知。

于 2012-12-25T14:21:25.083 回答
-1

尝试阅读有关视图控制器编程指南的惊人文档:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007457-CH1-SW1

它会回答你所有的问题。

于 2012-12-25T13:52:57.047 回答
-1

你正在寻找dismissViewControllerAnimated:completion:

文档在这里:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

通常,您应该让呈现模态视图控制器的视图控制器将其关闭,但它也可以自行关闭。该消息将自动转发给提供它的 VC。我会以不那么“神奇”的方式来做:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
于 2012-12-25T13:54:17.967 回答
-1

如果用户在视图 B,为什么要从视图 A 中关闭视图 B。既然关闭操作来自何处并不重要,为什么不简单地用简单的关闭视图 BdismissModalViewController的操作来关闭视图 B输入

 - (IBAction)goBack:(id)sender {
    [self dismissModalViewControllerAnimated:YES];

}

因此,使用此代码,您应该能够毫无问题地关闭模态视图控制器。并且可以从任一视图中将其关闭,但如果存在视图 B,则用户无法与按钮交互或在视图 A 上创建操作。

于 2012-12-25T13:55:52.227 回答