iOS 判断当前页面是否显示

有时候需要判断当前页面是否显示。构想一个场景:当用户使用app的时候,手机锁屏后解开屏幕锁,手机app进入前台。需要判断当前页面a还是页面b呈现给了用户。如果页面a呈现给用户,那么需要请求页面a的数据,如果页面b呈现给用户,需要请求页面b数据。这样用户每次进入app后呈现的数据都是最新的数据,利于用户体验



1、首先当用户使用app进入前台,那么需要发送一个通知,通知app进入前台了

 [[NSNotificationCenter defaultCenterpostNotificationName:AppDelegateWillEnterForegroudKey object:nil];


2、在需要请求数据的页面需要注册一个通知,等进入前台的时候,做些操作

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillEnterForegroud) name:AppDelegateWillEnterForegroudKey object:nil];


3、我需要知道app进入前台的时候,呈现给用户的是不是当前页面。如果是,就请求数据。如果不是,不请求数据,节省资源

- (void)appWillEnterForegroud{


   if(self.isViewVisable){

  //说明是当前页面,做些请求数据,更新页面的操作

       }

//不是的话可能不需要做任何事情

}


4、这个isViewVisable是我自己声明的一个变量

@property (nonatomic, assign) BOOL isViewVisable;


5、对这个变量做了以下的操作

1‘

- (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    

    self.isViewVisable = YES;


2’

- (void)viewWillDisappear:(BOOL)animated{

    

    [super viewWillDisappear:animated];


    self.isViewVisable = NO;

这样我的这个变量就可以拿来判断是不是在当前这个页面中了。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值