以编程方式为UITabBarController创建UIView

时间:2011-05-25 09:39:40

标签: uiview uitabbarcontroller

您好我有一个带有5个tabBar项目的UITabBarController。 第四个是UIScrollView。

第四个标签显示的区域我不会有特定的高度。

所以直到这里我已经完成了这个

这是我创建我的UITabBarController。(aViewController.h)

@interface aViewController: UIViewController <UITabBarControllerDelegate>{
UITabBarController *newTabBarController;
UIView *myView;
}

aViewController.m

- (void) viewDidLoad{
newTabBarController = [[UITabBarController alloc]init];
newTabBarController.delegate = self;

myView = [[UIView alloc]initWithFrame:CGRectMake(0,0,320,self.view.frame.size.height - newTabBarController.tabBar.frame.size.height)];
NSArray *controllers = [NSArray arrayWithObjects:myView, nil];
newTabBarController.viewControllers = controllers; //this is the line that a get an error :Tread1:Program receive signal: SIGABRT
[myView release];
}

如果我用Xcode创建一个UIViewController的viewController子类并将它放在NSArray中没有问题,但我希望我的视图有screen.height - tabbar.height所以我尝试以编程方式制作一个。 任何帮助都会受到关注!

1 个答案:

答案 0 :(得分:0)

  • 列表项

UIView尺寸

您可以通过Interface Builder完成此操作。

为给定标签创建所需的视图。然后进入属性检查器。名为“模拟指标”的选项卡允许您设置TabBar(甚至是NavigationBar)。

  • <强> SIGABRT

    myView = [[UIView alloc]initWithFrame:CGRectMake(0,0,320,self.view.frame.size.height - newTabBarController.tabBar.frame.size.height)];
    NSArray *controllers = [NSArray arrayWithObjects:myView, nil];
    newTabBarController.viewControllers = controllers; //this is the line that a get an error :Tread1:Program receive signal: SIGABRT
    

此属性称为viewControllers,而不是视图。

NSArray必须包含UIViewController实例或子类。

因此,最好使用IB定义View(并配置外观以显示TabBar等)。 然后使用方法initWithNibName:bundle:创建你的UIViewController,并将这些实例放入newTabBarController.viewControllers中。

希望有所帮助