0

私のアプリではタブレットに多くのボタンを追加する10のタブアイテムがほとんどあります。 moreボタンを選択すると、他のタブバーの内容がリストとして表示されます。私はそれらの1つを選択し、内部をナビゲートします(これにはナビゲーションコントローラがあります)。再び、より多くのボタンをクリックすると、前のページがロードされ、UIコントローラーがポップするので、何度かクリックしなければならないより多くのタブ項目がロードされます。したがって、ユーザーが他のアイテムをクリックするたびにタブバーリストを読み込む必要があります。それをどうやって解決するのか教えてください。UITabBar more button navigation issue

ありがとうございました

+0

この無限のタブバーを使用してみてくださいhttps://github.com/iosdeveloper/InfiniTabBar – Felix

+1

Appleは、物事のこの種のが好きではありません - WWDCスピーカーのカップルは、具体的には、「空想」tabbarsを白羽。 –

答えて

0

あなたのアプリの再構築について考えるべきでしょうか。あなたは本当に情報/機能の10パラレルエリアを必要としますか?

+0

はい:(ただし、6つ以上の項目を持つアプリがこの問題に直面します。 – Dilshan

0

あなたがより多くのタブでビューコントローラのViewWillDisappear方法でこれをすることによって行うことができ、呼び出し方法は次のように、MoreViewNavigationControllerのうち、このビューをポップします

[スーパーviewWillDisappear:アニメーション];

[self.navigationController popViewControllerAnimated:NO];

これはあなたがバーボタン項目のボタンの多くを必要とした場合であり、彼らはそれに適合しないanswer

0

です。

// MasterViewController.h 
     . 
     . 
     . 

     - (IBAction)btMy:(id)sender; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *btMy; 


     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt1; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt2; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt3; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt4; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt5; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt6; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt7; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *bt8; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl1; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl2; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl3; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl4; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl5; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl6; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl7; 
     @property (weak, nonatomic) IBOutlet UIBarButtonItem *fl8; 
     @end 

     // MasterViewController.m 
     . 
     . 
     . 
    @interface MasterViewController() 
    { 
     BOOL tt; 
    } 
    . 
    . 
    . 
     - (IBAction)btMy:(id)sender { 
     [self nextToolBar]; 

    } 

     -(void) nextToolBar { 
     if (tt) { 
       self.navigationController.toolbar.items = [NSArray arrayWithObjects:_bt1, _fl1, _bt2, _fl1, _bt3, _fl1, _bt4, _fl1, _btMy, nil]; 
       tt = NO; 
      }else{ 
       self.navigationController.toolbar.items = [NSArray arrayWithObjects: _bt5, _fl1, _bt6,_fl1,_bt7,_fl1, _bt8, _fl1, _btMy, nil]; 
       tt = YES; 
       } 

      for (NSInteger x = 0; x < 8; x++){ // если при перевороте цвет меняли на прозрачный, востанавливаем обратно 

       [self.navigationController.toolbar.items[x] setTintColor:_btMy.tintColor]; 
      } 

     } 

     -(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ // после смены орентации устройства 
      [self nextToolBar]; // показываем кнопки 4+1 иначе отображается все кнопки 8+1 шт 

     } 

     -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration{ // до смены арентауции устройства 
      NSArray *myArray = [NSArray arrayWithObjects:_bt1, _bt2, _bt3, _bt4, _bt5, _bt6, _bt7, _bt8, nil]; // перед переворотом экрана меняем цвет на прозрачный 
      for (NSInteger x = 0; x < 8; x++){ 

       [myArray[x] setTintColor:[UIColor clearColor]]; // 
       } 
      if (tt) {tt=NO;} else {tt=YES;} // чтобы вернуться на тот же набор кнопок 
     }