2012-12-25 232 views
0

我對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關閉自己。

謝謝。

回答

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

} 

其將這樣的伎倆

+1

實際上給出的代碼應該在B或D等副詞。這對我有效。在B視圖中發送通知後,我打電話關閉視圖,它工作正常。 – User7723337

-1

您正在尋找dismissViewControllerAnimated:completion:

的文檔是在這裏:

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

一般來說,你應該有一個展示模態視圖控制器關閉它的視圖控制器,但它也可以辭退本身。該消息將自動轉發給提供該消息的VC。我會做的少「神奇」的方式:

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

爲什麼你會從視圖A辭退查看b。如果用戶在查看B.因爲它不無論身在何處結束動作是從哪裏來的,爲什麼不直接解僱視圖B用一個簡單的dismissModalViewController時動作要關閉視圖B進來只需輸入

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

} 

因此使用此代碼,你應該能夠解僱模態視圖控制器沒有問題。它可以從任一視圖被開除,但如果視圖B存在,則該用戶不能使用的按鈕交互或創建視圖A.動作

+0

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

0

您正在使用已過時的方法,用這個來代替:

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

有了這個,你從A
當你想回到A B存在,你做相反:您從B.
如何呈現?有幾種方法,例如觀察員通知。

相關問題