[英]How to dismiss 2 view controller
我有一个问题需要支持:
假设我有控制器A和视图控制器B。视图控制器A现在是视图控制器B。在该视图控制器B加载内容之后。 在View controller BI上有一个按钮。 当我触摸事件按钮时,如何关闭两个视图控制器?
这是我的代码:在视图控制器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];
}
谢谢你帮我 您会节省我的时间。 :)
使用委托。 当您按下按钮时,调用委托,并在委托方法实现中编写以下内容:
[self dismissViewControllerAnimated:NO completion:nil];
在您的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];
}
}
在此处了解有关委托人和数据源的更多信息https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.