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

其中
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发送通知
在取消登录的按钮事件中

发送通知 通知我这个页面消失啦
然后在『我的』页面接收通知并将当前的视图设定为上次选择的视图

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