UITabbarController.xib
UILabel
为SubView
。
当我运行应用程序时UILabel
不可见,因为子视图控制器正在隐藏UILabel
。
我希望所有UILabel
控制器中都显示ChildView
。
当我调试viewDidLoad
和viewWillAppear
中的代码时,标签看起来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];
答案 0 :(得分:0)
我有UITabbarController子类的Xib - 这是一个视图。如果我在xib的视图顶部添加标签,它将不显示,因为viewcontroller是tabbarcontroller.tabbarcontroller的子类只接受tabbar作为子视图,它不会接受所以我们必须向每个子控制器添加项目,否则在tabbarcontroller类的viewdidload中创建一个标签alloc并初始化它并添加它就像
[self.view addsubview:label];
如果你在xib视图上添加标签,那么它在子视图控制器上将不可见,如果你在viewdidload中强制加载nib,那么nib将是visiblw但不是tabbarcontroller和子视图控制器。希望这对每个人都有帮助。