文档章节

iOS自定义tabbar后popToRootViewContriller和poptoviewcont

stevenSeven
 stevenSeven
发布于 2016/06/20 17:11
字数 328
阅读 8
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

iOS自定义tabbar后popToRootViewContriller和poptoviewcontroller时出现两个tabbar 的解决办法

 

问题:iOS自定义tabbar后popToRootViewContriller和poptoviewcontroller时出现两个tabbar

1.自定义代码:

- (void)viewWillAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    

    // 删除系统自动生成的UITabBarButton

    [self removeTabBarButton];

}

 

-(void) removeTabBarButton {

    // 删除系统自动生成的UITabBarButton

    for (UIView *child in self.tabBar.subviews) {

        if ([child isKindOfClass:[UIControl class]]) {

            [child removeFromSuperview];

        }

    }

}

 

/**

 *  初始化tabbar

 */

- (void)setupTabbar

{

    HYTTabBar *customTabBar = [[HYTTabBar alloc] init];

    customTabBar.frame = self.tabBar.bounds;

    customTabBar.delegate = self;

    [self.tabBar addSubview:customTabBar];

    self.customTabBar = customTabBar;

}

 

2.pop代码:

[self.navigationControllerpopToViewController:strongSelf.navigationController.childViewControllers[1] animated:YES];

 

3.结果:(因问题已经解决,暂时从网上找了一张遇到同样问题的图片作为替代)

21_88419_b6e87b66aee7f8b.png

 

解决方法:

1. pop的时候 发送通知

#define HYTNotificationCenter [NSNotificationCenter defaultCenter]

[HYTNotificationCenter postNotificationName:HYTPopViewControllerNotification object:nil];

 

2. 在自定义的tabcontroller 的viewdidload方法中注册通知,调用removeTabBarButton方法删除系统自带的就可以了

- (void)viewDidLoad {

    [super viewDidLoad];

    

    // 初始化tabbar

    [self setupTabbar];

    

    //.../

 

    [HYTNotificationCenter addObserver:self selector:@selector(removeTabBarButton)name:HYTPopViewControllerNotification object:nil];

}

 

-(void) removeTabBarButton {

    // 删除系统自动生成的UITabBarButton

    for (UIView *child in self.tabBar.subviews) {

        if ([child isKindOfClass:[UIControl class]]) {

            [child removeFromSuperview];

        }

    }

}

 

ps:我尝试过连续调用几个popviewcontroller的方法来替代poptoviewcontroller,结果正常。

这说明popviewcontroller 和 poptoviewcontroller 的实现至少在自定义tabbar上是有本质差别的。

转自互联网 侵删

上一篇: iOS面试的总结
下一篇: 关于tableview
stevenSeven
粉丝 9
博文 4
码字总数 4443
作品 0
株洲
私信 提问
加载中
请先登录后再评论。
iOS 应用版本更新检查--Harpy

实现 app 版本检查功能。用户打开app之后,进行app的版本更新检查。如果检查到 appstore 上有当前qpp的新版本,则弹出对话框提醒用户下载。可以设置让用户选择下载或者强制用户下载。 [Code4...

匿名
2013/02/18
1.7K
0
跨平台手机应用开发--Gideros

Gideros 可以让你轻松快速创建 iOS 和 Android 应用,提供用户友好的集成开发环境,内建模拟器对应用进行不同屏幕大小、分辨率下的测试,最大的优点是可即时修改代码即时进行测试,无需编译安...

匿名
2013/02/19
2.7K
1
RESwitch

RESwitch 是 UISwitch 的开源替代品,可使用 UIAppearance 协议进行定制。 要求: Xcode 4.5 or higher Apple LLVM compiler iOS 5.0 or higher ARC...

匿名
2013/02/19
587
0
Share This

这是一个 iOS 上的分享工具,可轻松在项目中嵌入使用。每个分享的选项可独立调用。在 iOS 5 上使用 ActionSheet 显示,而 iOS 6 上使用全新的 Activity 视图控制器来显示。 iOS 6+: iOS 5:...

匿名
2013/03/03
1.9K
0
MBPullDownController

MBPullDownController 是 iOS 的一个容器视图控制,用来实现可拖拉的滚动视图接口。 MBPullDownController 允许两个视图控制器,覆盖布局,上面的一个视图可接受拖拉操作来显示后面的视图。...

匿名
2013/03/08
571
0

没有更多内容

加载失败,请刷新页面

加载更多

听说你还不会jwt和swagger-饭我都不吃了带着实践项目我就来了

前言 哈喽,大家好,我是asong,这是我的第八篇原创文章。听说你们还不会jwt、swagger,所以我带来一个入门级别的小项目。实现用户登陆、修改密码的操作。使用GIN(后台回复Golang梦工厂:g...

sunsong2020
今天
3
0
python合并excel的多个sheet

简介 因为,每天都会有的大量excel报表汇总处理任务,所以写了一个脚本来处理。 就是找出每一个excel中特定的sheet,把这些sheet的特定列读取出来合并到一个sheet中。 因为每一个sheet的数据...

trayvon
30分钟前
7
0
如何设计一个幂等接口

什么叫幂等接口 幂等性,就是只多次操作的结果是一致的。这里可能有人会有疑问。 问:为什么要多次操作结果都一致呢?比如我查询数据,每次查出来的都一样,即使我修改了每次查出来的也都要一...

贪挽懒月
昨天
0
0
华为阿里下班时间曝光:所有的光鲜,都有加班的味道

点击上方 Z先生点记,加为星标 第一时间收到 Python 技术干货! 来源:GitHubPorn 声明:本文由HR人力资源成长俱乐部整理发布。素材来源程序员之家。如需转载,请务必注明以上信息,侵权必究...

zeroing1
08/06
0
0
Proguard 常用规则

入口 为了决定哪些代码要被保留哪些代码要出丢弃和混淆,必须指定入口点。这些入口点通常是 main方法,activity,service等。 在压缩阶段,Proguard从这些入口点开始递归确定哪些类或类成员要...

佛系编码
37分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部