UILabel添加到xib中的UITabbarController视图,由UITabbarController子视图控制器隐藏

时间:2014-05-14 12:23:07

标签: ios uitabbarcontroller subview

UITabbarController.xib UILabelSubView

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

我希望所有UILabel控制器中都显示ChildView

当我调试viewDidLoadviewWillAppear中的代码时,标签看起来nil虽然我在IBOutlet文件中有TabBarController.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];

1 个答案:

答案 0 :(得分:0)

我有UITabbarController子类的Xib - 这是一个视图。如果我在xib的视图顶部添加标签,它将不显示,因为viewcontroller是tabbarcontroller.tabbarcontroller的子类只接受tabbar作为子视图,它不会接受所以我们必须向每个子控制器添加项目,否则在tabbarcontroller类的viewdidload中创建一个标签alloc并初始化它并添加它就像

[self.view addsubview:label];

如果你在xib视图上添加标签,那么它在子视图控制器上将不可见,如果你在viewdidload中强制加载nib,那么nib将是visiblw但不是tabbarcontroller和子视图控制器。希望这对每个人都有帮助。