iPhone iOs 5,需要帮助让我的标签栏在顶部工作

时间:2012-07-07 15:12:04

标签: iphone ios ios5 tabs uitabbarcontroller

我想让标签栏位于顶部。

所以我在XCode中创建了一个新项目。添加了一个视图,然后在我添加的视图中(滚动条,文本和另一个视图)。见图。

Storyboard view of the MainWindow. Top part is for the tab host, middle is for content and bottom is for copyright

我想要的是将我的标签栏放在顶部。然后在中间将是标签栏中的内容,下面是一个小版权文本。见图。

All controls that i have added in the StoryBoard

不知道如何正确地做到这一点。我试图动态创建UITabBarController,然后将其分配到顶部的视图中。 (专用于标签栏的图片顶部空白区域)。

这是我启动MainWindow的代码。

MainWindow.h

#import <UIKit/UIKit.h>

@class Intro;

@interface MainWindow : UIViewController
@property (strong, nonatomic) IBOutlet UIScrollView *mainContentFrame;
@property (strong, nonatomic) IBOutlet UIView *mainTabBarView;
@property (strong, nonatomic) UITabBarController *mainTabBar;

@property (nonatomic, strong) Intro *intro; // Trying to get this tab to show in the tab bar

@end

MainWindow.m

#import "MainWindow.h"
#import "Intro.h"

@interface MainWindow ()

@end

@implementation MainWindow
@synthesize mainContentFrame = _mainContentFrame;
@synthesize mainTabBarView = _mainTabBarView;
@synthesize mainTabBar = _mainTabBar;

@synthesize intro = _intro;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    _intro = [[Intro alloc] init];
    NSArray *allViews = [[NSArray alloc] initWithObjects:_intro, nil];

    [super viewDidLoad];
    // Do any additional setup after loading the view.

    _mainTabBar = [[UITabBarController alloc] init];
    [_mainTabBar setViewControllers:allViews];

    [_mainTabBarView.window addSubview:_mainTabBar.tabBarController.view];
}

- (void)viewDidUnload
{
    [self setMainTabBar:nil];
    [self setMainContentFrame:nil];
    [self setMainContentFrame:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

我错过了什么让这个工作?希望内容最终在滚动视图中,以便所有选项卡都可滚动。

1 个答案:

答案 0 :(得分:0)

iOS用户界面指南说UITabBar必须位于ViewController的底部。您应该为这种View创建自己的GUI,或者使用“老式”方式。我不会试图破解UITabBar,因为您的应用程序可能会被Apple拒绝。