Пользовательский сбой UITabBarController SIGABRT в ios5 SDK - PullRequest
0 голосов
/ 31 октября 2011

У меня есть случай, когда я использую пользовательский UITabBar в своем приложении.
Он отлично работает в ios4 как на устройстве, так и на симуляторе.

Но выполнение того же кода с использованием xcode 4.2 и ios5 sdk не будет работать, так как приложение падает, когда я устанавливаю контроллеры представления моего пользовательского tabBarController в этой строке:

tabBarController.viewControllers = [NSArray arrayWithObjects:nc1, nc2, nc3, nil];

Вот как я создаю вкладку:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    tabBarController = [[MBCustomTabBarController alloc] init];

    home=[[Home alloc] initWithNibName:@"Home" bundle:nil];
    UINavigationController *nc1=[[UINavigationController alloc] initWithRootViewController:home];

    live=[[Live alloc] initWithNibName:@"Live" bundle:nil];
    UINavigationController *nc2=[[UINavigationController alloc] initWithRootViewController:live];

    report=[[Report alloc] initWithNibName:@"Report" bundle:nil];
    UINavigationController *nc3=[[UINavigationController alloc] initWithRootViewController:report];


    //custom tabbar items
    MBCustomTabBarItem *firstItem = [[MBCustomTabBarItem alloc] initWithTitle:@"headlines" image:[UIImage imageNamed:@"HOME-.png"] tag:0];
    MBCustomTabBarItem *secondItem = [[MBCustomTabBarItem alloc] initWithTitle:@"live" image:[UIImage imageNamed:@"NEWS-.png"] tag:1];
    MBCustomTabBarItem *thirdItem = [[MBCustomTabBarItem alloc] initWithTitle:@"report" image:[UIImage imageNamed:@"REPORT-.png"] tag:2];


    [firstItem setImage:[UIImage imageNamed:@"HOME.png"] forState:UIControlStateSelected];
    [secondItem setImage:[UIImage imageNamed:@"NEWS.png"] forState:UIControlStateSelected];
    [thirdItem setImage:[UIImage imageNamed:@"REPORT.png"] forState:UIControlStateSelected];

    nc1.tabBarItem=firstItem;
    nc2.tabBarItem=secondItem;
    nc3.tabBarItem=thirdItem;

    [firstItem release];
    [secondItem release];
    [thirdItem release];


    tabBarController.viewControllers = [NSArray arrayWithObjects:nc1, nc2, nc3, nil];
    [nc1 release];
    [nc2 release];
    [nc3 release];
    tabBarController.customTabBar.frame = CGRectMake(0, 480 - 49, 320, 49);
    tabBarController.customTabBar.backgroundColor = [UIColor clearColor];
    tabBarController.customTabBar.itemWidth = 320 / [self.tabBarController.viewControllers count];


    [self.window addSubview:tabBarController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

И здесь - небольшой рабочий пример.

Ваша помощь высоко ценится.

1 Ответ

0 голосов
/ 01 ноября 2011

Не берите в голову, я полностью изменил свой подход и использовал этот ответ, чтобы создать свой собственный tabBar.И работает нормально под ios5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...