我的UITabBar没有显示出来

时间:2012-03-03 01:06:48

标签: objective-c ios xcode uitabbar

好的伙计们,也许你可以帮我解决这个问题。我准备把头发拉出来了。

最近我决定升级我的应用程序并使其看起来更好,并且我希望将其全部支持iPad平台。有一段时间一切都很好。只需按下复制版MainWindow.xib for iPad,添加我在iPhone配置中使用的视图,一切都应该很棒,但是效果不好。看看:

以下是 iPhone 屏幕截图:

iPhone version

以下是 iPad 屏幕截图:

iPad Version

标签栏在哪里?我不明白!我在第一次将它放在一起时添加了初始视图,但是当我将所有IBOutlet链接到正确的部分时,标签栏不再显示。

IB的截图:

Interface Builder

标签栏属性:

  • 色调:蓝色
  • 图像色调:金色
  • 模式:缩放以填充
  • 标签:0
  • 启用用户交互:(已选中)
  • 多重触摸:(未选中)
  • Alpha:1
  • 不透明:(已检查)
  • 隐藏(未选中)
  • 清除图形上下文:(已选中)
  • 剪辑子视图:(未选中)
  • 自动调整子视图:(已选中)
  • 拉伸:(x,y,w,h):( 0,0,1,1)

viewController.h文件是UITabBar,UITextField和UITextView的委托

ViewDidLoad(bar是标签栏的IBOutlet):

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self playMovieIntro];

     NSURL *url = [NSURL URLWithString:@"http://www.faithlifefellowship.us/Audio/Sermons/NewSermonBanner.png"];
    NSData *data = [NSData dataWithContentsOfURL:url];
    UIImage *image = [UIImage imageWithData:data];
    if(!image == NULL)
    {
        NewSermonBanner.image = image;
    }

    series = [[Series alloc] init];

    SeriesName = @"";

    NSRange range = [[[UIDevice currentDevice] name] rangeOfString:@"iPad"];

    int i = 0;

    if(range.location != NSNotFound)
        i = 1;

    bar.selectedItem = hometab;

    //set delegates
    [bar setDelegate:self];
    [personalName setDelegate:self];
    [personalEmail setDelegate:self];
    [content setDelegate:self];
    [prContent setDelegate:self];
    [prName setDelegate:self];
    [prEmail setDelegate:self];
}

我很难过。如果您有任何想法或需要更多信息,请告诉我们。

谢谢!

2 个答案:

答案 0 :(得分:1)

为了解决这个问题,我会给你一些我要解决的问题。如果您可以上传源代码供我/我们下载并能够查明问题,那将更容易。

有时候(我不记得确切的时间)我的导航栏没有显示,因为它缺少连接。

确保您没有将标签栏隐藏在代码中的任何位置,但它似乎并非如此,因为它出现在iPhone上。

否则我会猜测并说它是NIB中的东西。以下是您可以尝试的一些事项:

  • 检查所有与商店的连接
  • 确保NIB中的对象具有正确的类
  • 确认标签栏的“隐藏”属性未在Interface Builder
  • 中签入
  • 比较并验证iPhone和iPad之间NIB文件的所有结构

这些只是一些想法:)如果你可以发布它会很棒的代码。

让我们知道它是怎么回事, 菲利普

答案 1 :(得分:1)

我在支持iPhone和iPad的应用程序中遇到此问题。使用对象检查器检查视图控制器时,确保为UITabBarController检查'是初始视图控制器'。执行此操作时,如果您使用的是故事板,xcode将在视图控制器的左侧显示“入站”箭头。