繁体   English   中英

如何解雇2视图控制器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM