iOS:怎样实现京东App 一键跳转回首页功能?

发布于 2022-09-06 02:11:18 字数 572 浏览 86 评论 0

手机京东iOS客户端的商品详情界面(其实大部分界面的右上角都有“返回首页”子按钮),
不论视图层级多么深,都能一键返回到首页。
不太可能是 popToRootController, 再设置tabBarController 的index显示视图。
目测是通过OpenUrl 组件化的方式实现的,
组件化的实现思路,讲一下。
有没有其他好一点的方法?


例子:
dissmissCtrl , 再设置tabBarController 的index显示视图 的情况:
未登录情况下,从首页选项卡,点击第三个选项卡购物车,跳转登录界面,
点击微信登录 ,又dismiss 到首页,再设置tabBarController 的index 为2。


京东的: 感觉非常流畅


图片资源:

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

千鲤 2022-09-13 02:11:18

写个简单的算法,就可以了


- (void)backHome{
    
    BOOL back = true;
    if ([self.navigationController.childViewControllers[0] isKindOfClass: NSClassFromString(@"NewMainViewController")]) {
        back = false;
    }
    
    [self.navigationController popToRootViewControllerAnimated: NO];
    if (back) {
        AppDelegate * delegate = (AppDelegate *)UIApplication.sharedApplication.delegate;
        TabBarController * tabBarController = (TabBarController *) delegate.window.rootViewController;
        [tabBarController setSelectedIndex: 0];
    } }
    
    

self.navigationController.childViewControllers 的栈结构数组中,拿到信息。做一个判断,就可以了


    (lldb) po self.navigationController.childViewControllers
    <__NSArrayI 0x6000033a7580>(
    <NewMainViewController: 0x7f814b4024a0>,
    <ProductsDetailsVC: 0x7f814df31990>
    )
虚拟世界 2022-09-13 02:11:18

你试了?popToRootController, 再设置tabBarController 的index显示视图,我感觉可以的

鹿港小镇 2022-09-13 02:11:18

这种场景只听过用popToRootController来实现唉

等风也等你 2022-09-13 02:11:18

我看了 CYLTabBarController 的 Demo , 没什么 烟火气。 就是通过,

[self.navigationController popToRootViewControllerAnimated: NO];

感觉 可以 在 其他线程操纵 UIViewController/UIView 这些类, 要想可见(显示在屏幕上),就要 放在主线程中, UI
不同于 UIViewController/UIView.

慈悲佛祖 2022-09-13 02:11:18

我是这么写的,亲测可用,你试试看

//返回首页
self.navigationController.tabBarController.hidesBottomBarWhenPushed=NO;
self.navigationController.tabBarController.selectedIndex=0;
[self.navigationController popToRootViewControllerAnimated:YES];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文