以前处理页面来向,都会在上个设置个type做个标记,显得狠繁琐。
下面是一种精简的方法来判断页面来向的方法
#pragma 处理界面的来向
- (void)handleFromViewControllers
{
NSArray *viewControllers = self.navigationController.viewControllers;
@myWeakify(self);
[viewControllers enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
@myStrongifyRetNIfNil(self);
//从RootViewController进入
if ([obj isKindOfClass:[RootViewController class]]) {
//self.isFromRoot= YES;
//self.lastVC = obj; //上一个页面保存下来,用于返回用
NSLog(@"是从RootViewController过来的页面");
*stop = YES;
}
//其他页面跳转到当前页面,做处理
// else if ()
// {
// }
}];
}
#pragma mark 返回页面事件
- (void)backButton
{
if (self.lastVC != nil)
{
[self.navigationController popToViewController:self.lastVC animated:YES];
}else
{
[self.navigationController popViewControllerAnimated:YES];
}
}