我有 Controller (新闻屏幕),我需要检测用户何时离开它。我试过了
- (void)viewWillDisappear:(BOOL)animated
,但问题是,当用户点击共享按钮(在社交网络等中共享)时,该方法会触发,但共享后用户仍处于新闻屏幕中,因此它不起作用。
我也尝试过
-(void)willMoveToParentViewController:(UIViewController *)parent {
,但它也会在用户第一次进入 Controller 时触发,这是错误的(我只需要检测离开)。
如何检测用户何时离开 Controller ,但在进入“共享”弹出屏幕时不触发?
最佳答案
These four methods can be used in a view controller's appearance callbacks to determine if it is being presented, dismissed, or added or removed as a child view controller. For example, a view controller can check if it is disappearing because it was dismissed or popped by asking itself in its viewWillDisappear: method by checking the expression ([self isBeingDismissed] || [self isMovingFromParentViewController]).
- (BOOL)isBeingPresented NS_AVAILABLE_IOS(5_0);
- (BOOL)isBeingDismissed NS_AVAILABLE_IOS(5_0);
- (BOOL)isMovingToParentViewController NS_AVAILABLE_IOS(5_0);
- (BOOL)isMovingFromParentViewController NS_AVAILABLE_IOS(5_0);
针对您的场景使用 isMovingFromParentViewController
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
if (self.isMovingFromParentViewController){
}
}
关于ios - 检测用户何时离开 viewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38098705/