2

tabBarControllerを選択せず​​にロードしたいtabBar。実際にはそれぞれがtabBarItem特定のビューに対応して ViewControllerいます。しかし、私はビュー「成功」を持っており、それはどのタブバーアイテムにも属していません。 ViewController が表示され、SuccesView が消えるはずです。グーグルを調べてこれを見つけましたが、機能させることができませんでした。tabBarControllertabBarItems

SuccessView.m 内

- (void)viewDidLoad
{
    [super viewDidLoad];

// UIlabels and UITextFields loads

SuccessView *defaultView = [[SuccessView alloc]initWithNibName:@"SuccessView" bundle:[NSBundle mainBundle]];
    [self.tabBarController setSelectedViewController:nil];
    [self.tabBarController setSelectedViewController:defaultView];

    SearchView *first = [[SearchView alloc] initWithNibName:@"SearchView" bundle:nil];
    first.title=@"Search";

    Settings *second=[[Settings alloc]initWithNibName:@"Settings" bundle:nil];
    second.title=@"Settings";

    NSArray *viewArray= [NSArray arrayWithObjects:first,second, nil];

    tabbarController=[[UITabBarController alloc] init];
    [tabbarController setViewControllers:viewArray animated:NO];

    [self presentModalViewController:tabbarController animated:NO];
}

しかし、SuccessView に追加された tabbarController が見つかりません。

4

1 に答える 1

1

配置されたタブバー項目のいずれかからの現在のビューを期待するため、UITabbar代わりに私が使用した同じ状況とタブバー項目がありました...コードは次のとおりです..これでうまくいくはずです:)UITabBarControllerUITabBarController

 UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(your frame)];   
  NSMutableArray  *tabBarItemsArray= [[NSMutableArray alloc] init];
    UITabBarItem *tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"artist" image:[UIImage imageNamed:@"artist-tab.png"] tag:1];//assigning the title name and image

    [tabBarItem1 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:48.0/255.0  green:60.0/255.0 blue:109.0/255.0 alpha:1.0],UITextAttributeTextColor,nil] forState:UIControlStateNormal];//set the color when the tabbar appears

    [tabBarItem1 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor,nil] forState:UIControlStateSelected];//sets the color when the tabbar is selected

     UITabBarItem *tabBarItem2 = [[UITabBarItem alloc] initWithTitle:@"Facebook" image:[UIImage imageNamed:@"music-tab.png"] tag:2];

    [tabBarItem2 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor colorWithRed:48.0/255.0  green:60.0/255.0 blue:109.0/255.0 alpha:1.0],UITextAttributeTextColor,nil] forState:UIControlStateNormal];

    [tabBarItem2 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor,nil] forState:UIControlStateSelected];

            [tabBarItemsArray addObject:tabBarItem1];
            [tabBarItemsArray addObject:tabBarItem2];
            tabBar.items = tabBarItemsArray;
            tabBar.delegate = self;

         [self.view addSubview:tabBar];

UITabBarDelegateこのメソッドを実装するには、ヘッダー ファイルにデリゲートを追加してください。

   - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
        NSLog(@"Tabbar selected itm %d",item.tag); 
   // here you can call your view based on tab click you can try using switch statements here based on item.tag
       }

これがあなたの質問に答えて役立つことを願っています:)

また、UITabbar画像を使用してカスタマイズすることもできます...お知らせください..必要に応じて、ここにコードを投稿します。

于 2012-12-19T06:26:00.870 に答える