Есть ли способ добавить такую ​​же прокручиваемую строку меню на панель навигации? - PullRequest
0 голосов
/ 10 января 2012

Я уже опубликовал эту проблему в другой раз, но я не получил свой ответ идеально. Вот я собираюсь объяснить мою проблему в другой раз, это очень важно для меня, поэтому любой ценой я должен решить ее. Теперь мой проблема ...

Предположим, у меня есть 4 tabbaritem в tabbarController и пункты "приборная панель", "заказ", "продукт", "клиент".

каждый элемент этих вкладок является вызовом там uiviewcontroller.

панель инструментов, вызывающая «DashboarViewController»;

заказ вызова "orderViewController";

продукт, вызывающий "ProductViewController";

клиент звонит "CustomerViewController";

Теперь мне нужно установить прокрутку меню на каждом контроллере uiview , и эта строка меню содержит 4 кнопки. Эти имена кнопок совпадают с именами элементов вкладок: «Панель инструментов», «Заказ», «Продукт», «Клиент».

Теперь, когда я нажимаю кнопку строки меню, соответствующий контроллер будет отображаться так же, как и для элементов панели вкладок. предположим, что я нажимаю на элемент панели вкладок "order", тогда он покажет "orderviewcontroller". когда я увижу этот контроллер представления, он также покажет мне эту строку меню в верхней части viewcontroller. Теперь, если я нажму кнопку «product» в этом «orderviewcontroller», он будет отправлен мне «productViewcontroller».

это означает, что элемент вкладки и кнопка прокрутки меню будут работать одинаково.

до сих пор я сделал это, мой предыдущий пост изображения Как сделать одну и ту же кнопку в контроллере с несколькими представлениями?

Если кто-то знает, как это сделать, объясните, пожалуйста, шаг за шагом. Мне не нужно давать от вас никакого кода. Просто объясните шаг за шагом, как я могу это сделать после прочтения моего предыдущего поста

Заранее спасибо.

1 Ответ

0 голосов
/ 12 января 2012

Ха-ха-ха ..... было так весело, когда я решил ее. Что бы я ни решил эту проблему по-другому, я не использовал контроллер кнопки прокрутки для контроллера просто, в каждом контроллере я сделал функцию, гдекнопки внутри прокрутки создать и по действию кнопки я просто изменил выбранный индекс контроллера вкладок.

в -(void)viewDidload я написал этот код

     UIView *scrollViewBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 45)];
scrollViewBackgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"topmenu_bg.png"]];

menuScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(5,0,320,40)];
menuScrollView.showsHorizontalScrollIndicator = FALSE;
menuScrollView.showsVerticalScrollIndicator = FALSE;
menuScrollView.bounces = TRUE;
[scrollViewBackgroundView addSubview:menuScrollView];
[self.view addSubview:scrollViewBackgroundView];

[self createMenuWithButtonSize:CGSizeMake(92.0, 30.0) withOffset:5.0f noOfButtons:7];   

вот кнопка созданияи действие

-(void)mybuttons:(id)sender{    
NSLog(@"mybuttons called");
UIButton *button=(UIButton *)sender;
NSLog(@"button clicked is : %iBut \n\n",button.tag);
int m = button.tag;
for(int j=0;j<8;j++){
    if(button.tag == m){
        self.tabBarController.selectedIndex = m;
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_hover.png"] forState:UIControlStateHighlighted]; //sets the background Image]            
    }
    if(button.tag != m){
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]
    }
}
}       

 -(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons{

NSLog(@"inserting into the function for menu bar button creation"); 
for (int i = 0; i < totalNoOfButtons; i++) {

    UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
    [button addTarget:self action:@selector(mybuttons:) forControlEvents:UIControlEventTouchUpInside];
    (button).titleLabel.font =  [UIFont fontWithName:@"Arial" size:12];
    if(i==0){
        [button setTitle:[NSString stringWithFormat:@"Dashboard"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_hover.png"] forState:UIControlStateNormal]; //sets the background Image]
    }
    if(i==1){
        [button setTitle:[NSString stringWithFormat:@"Order"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    }
    if(i==2){
        [button setTitle:[NSString stringWithFormat:@"Product"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    }
    if(i==3){
        [button setTitle:[NSString stringWithFormat:@"Customers"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    }
    if(i==4){
        [button setTitle:[NSString stringWithFormat:@"Content"] forState:UIControlStateNormal];//with title
    }
    if(i==5){
        [button setTitle:[NSString stringWithFormat:@"Site Analysis"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    }
    if(i==6){
        [button setTitle:[NSString stringWithFormat:@"Store Settings"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    }
    if(i==7){
        [button setTitle:[NSString stringWithFormat:@"CMS Settings"] forState:UIControlStateNormal];//with title
        [button setBackgroundImage:[UIImage imageNamed:@"btn_topmenu_normal.png"] forState:UIControlStateNormal]; //sets the background Image]

    }
    button.frame = CGRectMake(i*(offset+buttonSize.width), 6.0, buttonSize.width, buttonSize.height);
    button.clipsToBounds = YES;
    button.showsTouchWhenHighlighted=YES;
    button.layer.cornerRadius = 5;//half of the width
    button.layer.borderColor=[UIColor clearColor].CGColor;
    button.layer.borderWidth=0.0f;
    button.tag=i;
    [menuScrollView addSubview:button];
}
menuScrollView.contentSize=CGSizeMake((buttonSize.width + offset) * totalNoOfButtons, buttonSize.height);
[self.view addSubview:menuScrollView];

}
...