【问题标题】:UITabBar more button navigation issueUITabBar 更多按钮导航问题
【发布时间】:2011-09-20 17:30:29
【问题描述】:

在我的应用程序中,我几乎有 10 个选项卡项,最终在选项卡栏上添加了一个更多按钮。当我选择更多按钮时,它会将其他标签栏内容列为列表。我选择其中一个并在里面导航(这有一个导航控制器)并单击一个项目。同样,如果我单击上一页加载的更多按钮并加载更多选项卡项,我必须单击几次,因为它会弹出 UI 控制器。因此,每次用户单击更多项目时,我都需要加载标签栏列表。请帮我弄清楚该怎么做。

谢谢

【问题讨论】:

标签: iphone cocoa-touch uitabbarcontroller uitabbar uitabbaritem


【解决方案1】:

也许您应该考虑重构您的应用。你真的需要 10 个平行的信息/功能领域吗?!

【讨论】:

  • 是的 :( 但是超过 6 个项目的应用将面临这个问题。
【解决方案2】:

您可以在 More 选项卡中视图控制器的 ViewWillDisappear 方法中执行此操作,调用该方法将视图从 MoreViewNavigationController 中弹出,如下所示:

[super viewWillDisappear:animated];

[self.navigationController popViewControllerAnimated:NO];

这是answer

【讨论】:

    【解决方案3】:

    如果您需要在 bar 按钮项上有很多按钮并且它们不适合它。

    //  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;}   // чтобы вернуться на тот же набор кнопок
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多