2014-05-14 72 views
0

UITabbarController.xibUILabel作为SubViewUILabel添加到xib的UITabbarController视图被UITabbarController隐藏子视图控制器

当我运行应用程序UILabel不可见,因为子视图控制器隐藏UILabel

我希望UILabel在所有ChildView控制器中都可见。

当我调试viewDidLoadviewWillAppear该标签看起来nil对象虽然我已经在TabBarController.h文件IBOutlet连接的代码。

我有这样的代码在.h文件中这一

@interface TestTabBarController : UITabBarController <UITabBarControllerDelegate> 

@end 
and in .m file 

@interface TestTabBarController() 
@property (weak, nonatomic)IBOutlet UILabel *historylabel; 
@end 


@implementation TestTabBarController 

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    if(self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]){ 

    } 
    return self; 
} 
-(void)setChildrenViewControllers 
{ 
    // Set the View Controllers. 
    FirstViewController *viewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 

    SecondViewController *viewcontroller2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

    ThirdViewController *viewController3 = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil]; 

    FourthViewController *viewController4 = [[FourthViewController alloc] initWithNibName:@"FourthViewController" bundle:nil]; 

self.viewControllers = @[viewController,viewcontroller2,viewController3,viewController4]; 


self.delegate = self; 
} 

@end 

我打电话的Tabbarcontroller类如下

TestTabBarController *testtabbar = [[TestTabBarController alloc] initWithNibName:@"TestTabBarController" bundle:nil]; 
[testtabbar setChildrenViewControllers]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:testtabbar]; 
[self.navigationController presentViewController:navController animated:YES completion:nil]; 

回答

0

我有厦门国际银行的子类的UITabBarController - 这是一个视图。如果我在xib视图顶部添加标签,它将不会显示,如果因为viewcontroller是tabbarcontroller.tabbarcontroller的子类只接受tabbar作为子视图,它不会接受所以我们必须添加项目到每个子控制器,否则在tabbarcontroller类的viewdidload类创建一个标签分配和初始化它,并添加它像

[self.view addsubview:label];

如果您在xib视图上添加标签,那么它将不会在子视图控制器上可见,如果您在viewdidload中强制加载nib,那么nib将是visiblw,但不是tabbarcontroller和子视图controllers.Hope这将帮助每个人。

相关问题