繁体   English   中英

解除模态视图时未调用ViewDidAppear

[英]ViewDidAppear not called when the modal view is dismissed

首先,我创建一个MainViewController。 然后在MainViewController中,我这样做

[self presentViewController:modalViewController animated:YES completion:nil];
modalViewController.modalPresentationStyle = UIModalPresentationFormSheet;

当我关闭modalViewController时,On iPhone(iPhone 6+除外),调用MainViewController的viewDidAppear。 在iPad和iPhone 6+上,未调用MainViewController的viewDidAppear。

逻辑是在解除modalViewController时调用一个函数。 我如何知道modalViewController何时被解除。

当您关闭模态视图控制器时,可以使用委托在MainViewController中调用您的函数。 例如:

MainViewController.h:

@protocol YourDelegate <NSObject>
- (void)someFunction;
@end

@interface MainViewController : UIViewController <YourDelegate>

@end

MainViewController.m:

// Where you present the modal view
ModalViewController *view = [[ModalViewController alloc] init];
view.delegate = self;
[self presentViewController:view animated:YES completion:nil];

ModalViewController.h:

@interface ModalViewController : UIViewController
@property (nonatomic, weak) id<YourDelegate> delegate;
@end

ModalViewController.m

// Wherever you dismiss..
[self dismissViewControllerAnimated:YES completion:^{
    [self.delegate someFunction];
}

Apple提供视图控制器的方法是在呈现的视图控制器上设置一个委托,当该视图控制器请求关闭时调用该委托。 然后,演示者将负责解雇控制器,因此也将知道何时进行任何相关的清理(动画之前和之后)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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