点击tabbar做未登录判断以及用通知实现页面dismiss后到tabbar的指定页面

今天在做登录页面跳转需求的时候,需要点击『我的』页面判断用户是否登录,如果已经登录就直接进入『我的』页面,如果未登录就要present到登录页面,登录页面点击取消按钮的时候登录页面消失,并且当前页面是上一次停留的页面,应该是大多数app的需求,上代码啦~

首先在UITabBarController里做用户是否登录的判断


点击tabbar做未登录判断以及用通知实现页面dismiss后到tabbar的指定页面_第1张图片

其中

NSUInteger tabindex=[tabBar.items indexOfObject:item];

if (tabindex!=self.selectedIndex) {

tempnum=self.selectedIndex;

}    

判断当前点击的页面是不是已经选择的页面,如果不是说明发生页面跳转关系

tempnum是定义的全局变量   初始值为0,用来记录上一次用户所停留的页面,将其设置为当前已经选择的页面而不是正在点击的页面

当点击第三个也就是『我的』页面的时候,判断用户是否已经登录,如果未登录则跳转到登录页面,同时存储用户上次选择的页面

log.lastnum=tempnum;

NSString *tempindex=[NSString stringWithFormat:@"%ld",tempnum];

kSaveStandardUserDefaults(tempindex,kselectIndex);



接下来是登录页面也就是LoginVC发送通知

在取消登录的按钮事件中


点击tabbar做未登录判断以及用通知实现页面dismiss后到tabbar的指定页面_第2张图片

发送通知   通知我这个页面消失啦



然后在『我的』页面接收通知并将当前的视图设定为上次选择的视图


点击tabbar做未登录判断以及用通知实现页面dismiss后到tabbar的指定页面_第3张图片

NSInteger numss=[kStandardUserDefaultsObject(kselectIndex) integerValue];就是存储到上次选择为第几个视图,然后就可以实现啦~    没太看懂的小伙伴可以给我留言哦     还也可以直接在通知里就把tempnum的值传递过去,我自己用了稍微笨一点的方法,多多提意见~

你可能感兴趣的:(点击tabbar做未登录判断以及用通知实现页面dismiss后到tabbar的指定页面)