首页 > 解决方案 > 如何安全地执行延迟选择器 iOS

问题描述

viewDidAppear我在 3 秒后向用户显示一个弹出窗口。如果用户viewController在计时器开始后导航到另一个怎么办。当超级视图不再出现在屏幕上时,所选功能将尝试执行并显示弹出窗口。应用程序不会崩溃或抛出任何错误,但我想确认这是安全的。我应该在选择器方法中设置 aBOOL和 assert isCurrentViewis吗?YES

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self performSelector:@selector(showPopup) withObject:nil afterDelay:2.5];
}

标签: iosobjective-cselectornstimer

解决方案


viewDidDisappear

-(void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:(BOOL)animated];       
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showPopup) object:nil];
}

推荐阅读