iOS之旅--处理跳转

来源:互联网 发布:dm500s接收机 淘宝 编辑:程序博客网 时间:2024/05/20 01:10

iOS之旅–处理跳转

项目中有一些需要跳转界面,整理一下不同的跳转。

  • 我的项目中有tabbar有4个选项,
  • 每个界面进入基本都有网络请求

第一种——跳转到某一个tabbar的主页

/** 跳转到首页 */- (void)goToHomeView{    //index从 0 开始,我这里有4个tabbar,就是0,1,2,3    self.navigationController.tabBarController.selectedIndex = 0;}

第二种——跳转到某个界面(之前打开过、未打开过)

注:我第一个控制器为A,点击打开了B界面(B是一个list),打开list某一个界面C之后,里面还需要跳转D界面,在D界面操作之后,需要跳转到B界面,如果我们pop的话就是到C界面了,这里就需要用到navigationController的栈操作,

//D界面的跳转返回B界面- (void)popView {    if ([self.navigationController.viewControllers[0] isKindOfClass:[A class]])    {        B *dev = self.navigationController.viewControllers[1];        [self.navigationController popToViewController:dev animated:YES];    } else {        [self.navigationController popToRootViewControllerAnimated:NO];        [[NSNotificationCenter defaultCenter]postNotificationName:@"PUBFanhui" object:nil];    }}

由于我的D界面还有别的入口,(栈顶可能不是A,所以做了下判断)用了通知的办法去进行跳转

(下面这部分代码是写在继承自UITabBarController的控制器里面,在这里设置这个通知的好处是你初始化tabbar的时候,就定义这个通知了,这部分属于一个整体。

如果不在这里,部分代码需要修改。)

如果你有好的办法,可以交流,谢谢

//在viewDidLoad里面添加通知[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(tiaozhuan) name:@"PUBFanhui" object:nil];- (void)tiaozhuan{    //我的A界面是处于最后一个tabbar的,这个控制器是继承UITabBarController,所以直接self.selectedIndex,    self.selectedIndex = 3;    MainNavigationController *nav =self.viewControllers[3];    [nav pushViewController:[[MyProgectTableViewController alloc] init] animated:NO];}

最后说一下,上面第二种方法中,通知的那个跳转一般不推荐用,我们这边只是实现了一些简单跳转的,太深入的跳转都给产品推了,没有实现,朋友们如果有好的办法,可以给说一下。谢谢

0 0
原创粉丝点击