iOS之旅--处理跳转

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值