从另一个视图控制器关闭视图控制器

问题描述:

我对iPhone应用程序开发非常新颖。
我想关闭/从另一个视图中删除一个视图,但有些如何它不适合我。从另一个视图控制器关闭视图控制器

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

有两个视图AB
查看A正在打开视图B使用以下代码。

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

但一些如何,我不能够关闭视图B从视图控制器A.
怎么办呢?

---- ---- UPDATE

至于问我为什么需要从视图近景B中的答案,因为我正从下面的应用层事件查看器A和上一些事件我想从视图A关闭视图B.

也有可能发送一些事件来查看B关闭自己。

谢谢。

所述的

- (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]; 

} 

其将这样的伎俩

+1

实际上给出的代码应该在B或D等副词。这对我有效。在B视图中发送通知后,我打电话关闭视图,它工作正常。 – User7723337

您正在寻找dismissViewControllerAnimated:completion:

的文档是在这里:

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

一般来说,你应该有一个展示模态视图控制器关闭它的视图控制器,但它也可以辞退本身。该消息将自动转发给提供该消息的VC。我会做的少“神奇”的方式:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; 

为什么你会从视图A辞退查看b。如果用户在查看B.因为它不无论身在何处结束动作是从哪里来的,为什么不直接解雇视图B用一个简单的dismissModalViewController时动作要关闭视图B进来只需输入

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

} 

因此使用此代码,你应该能够解雇模态视图控制器没有问题。它可以从任一视图被开除,但如果视图B存在,则该用户不能使用的按钮交互或创建视图A.动作

+0

FYI dismissModalViewControllerAnimated:YES是在IOS 6弃用,是现在略有不同:dismissViewControllerAnimated:完成: – Hippocrates

您正在使用已过时的方法,用这个来代替:

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

有了这个,你从A
当你想回到A B存在,你做相反:您从B.
如何呈现?有几种方法,例如观察员通知。