2015-12-24 42 views
0

我有一個問題需要支持:如何解僱2視圖控制器

假設,我有控制器A和視圖控制器B.視圖控制器存在A視圖控制器B.該視圖控制器B加載內容完成後。在視圖控制器B我有一個按鈕。 如何在觸摸事件按鈕時觸發兩個視圖控制器?

這裏我的代碼:在視圖控制器A

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"mainstoryboard" bundle:nil]; 
ViewControllerB *viewcontrollerB = [storyBoard instantiateViewControllerWithIdentifier:@"viewcontrollerB"]; 
[self presentViewController:viewcontrollerB animated:YES completion:nil]; 

和代碼視圖中的控制器B

- (IBAction)buttonTouchUpInside:(id)sender { 
     [self dismissViewControllerAnimated:YES completion:nil];  
    } 

謝謝你幫助我。你會節省我的時間。 :)

+0

你可以這樣做但是2個視圖控制器一個接一個地解散。這個可以嗎?? –

回答

0

使用代表團。當您的按鈕按下之後調用的委託,在委託方法實現寫:

[self dismissViewControllerAnimated:NO completion:nil]; 
0

使用此代表團對你ViewControllerB

在ViewControllerB.h做到這一點

@protocol ViewControllerDismissDelegate; 

@interface ViewControllerB : UIViewController 

@property(nonatomic) id<ViewControllerDismissDelegate> delegate; 

@end 

@protocol ViewControllerDismissDelegate <NSObject> 

@optional 
- (void)didViewControllerBDismiss; 
@end 

在ViewControllerB.m做這

// Button action 
- (void)buttonDidClick { 
    if ([self.delegate respondsToSelector:@selector(didViewControllerBDismiss)]) { 
     [self dismissViewControllerAnimated:NO completion:nil]; 
     [self.delegate didViewControllerBDismiss]; 
    } 
} 

瞭解更多關於代表和數據源es here https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html

+0

如何解除視圖控制器A?我想解僱兩個觀點(A和B)。 –

+0

你是如何呈現ViewControllerA的? – Demones

+0

在視圖控制器A.我有初始化視圖控制器B.類似的東西 'UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@「main」bundle:nil]; ViewcontrollerB * vcB = [storyBoard instantiateViewControllerWithIdentifier:@「ViewcontrollerB」]; [self presentViewController:vcB animated:YES completion:nil];' –