popToRootViewController

来源:互联网 发布:跨境电子商城源码 编辑:程序博客网 时间:2024/06/01 07:50

Xcode6.1 iOS8 导航控制器popToRootViewContriller问题,求大神指点啊   

Xcode6.1 iOS8  导航控制器

我自定义了一个tabBarController 系统的tabbar上面的UITabbarButton 删了, 把自定义的tabbar加在了系统的tabbar上面,开始运行正常, 但是当使用PopToRootViewController  时, tabbar上系统自带的UITabBarButton又出现了
- (void)removeTabBarItem
{
    for (UIView *subView in self.tabBar.subviews) {
        if ([subView isKindOfClass:[UIControl class]]) {
            subView.hidden = YES;
            [subView removeFromSuperview];
        }
    }
}
在tabbarController 运行正常, 但是当 执行完
[self.navigationController popToRootViewControllerAnimated:YES];
后就出现了这种叠加的这种情况。

 
关键词:问题 使用 code View Controller
回复引用
举报顶端
tableview123
级别: 新手上路
状态: 未签到 - [65天]
UID: 155202
精华: 0 
发帖: 55
可可豆: 369 CB
威望: 240 点
在线时间: 88(时)
注册时间: 2012-07-17
最后登录: 2015-11-04
沙发 :发表于: 2015-01-26 10:03   发自: Web Page
只看该作者   小 中 大
创建了2次UITabBarButton 
回复引用
举报顶端
一字
级别: 侠客
 
状态: 未签到 - [12天]
UID: 408527
精华: 0 
发帖: 148
可可豆: 315 CB
威望: 277 点
在线时间: 290(时)
注册时间: 2014-11-30
最后登录: 2016-03-16
板凳 :发表于: 2015-01-26 10:05   发自: Web Page
只看该作者   小 中 大
系统的不用管就行了,根本不用调系统的。直接自定义就ok。然后你要确定你的tabbar不会多次创建。 
生活艰辛,但不低头。
回复引用
举报顶端
胆小鬼
级别: 新手上路
UID: 225539
精华: 0 
发帖: 5
可可豆: 5 CB
威望: 5 点
在线时间: 70(时)
注册时间: 2013-05-27
最后登录: 2015-12-08
3 楼: 发表于: 2015-02-10 11:26   发自: Web Page
只看该作者   小 中 大
我也碰到了这个问题,请问你是怎么解决的啊? 
回复引用
举报顶端
apple_victor
级别: 新手上路
状态: 未签到 - [2天]
UID: 88419
精华: 0 
发帖: 10
可可豆: 36 CB
威望: 34 点
在线时间: 197(时)
注册时间: 2011-08-21
最后登录: 2016-02-20
4 楼: 发表于: 2015-02-27 11:18   发自: Web Page
只看该作者   小 中 大
在自定义的导航控制器如下方法中注册一个通知
- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moreMore) name:@"moreMore" object:nil];
}

然后实现该方法:
/**
*  删除TabBar上的UITabBarButton
*/
-(void)moreMore
{
    for (UIView *tabBarButton in self.tabBarController.tabBar.subviews) {
        if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
            [tabBarButton removeFromSuperview];
        }
    }
}

-(void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"moreMore" object:nil];
}

===
第二步:在需要使用popRootController的时候调用popRootController方法,并发一个上述的消息即可。 
0 0
原创粉丝点击