Есть ли способ добавить такую же прокручиваемую строку меню на панель навигации?
Я уже опубликовал эту проблему в другой раз, но я не получил свой ответ идеально. Вот я собираюсь объяснить свою проблему в другой раз, это очень важно для меня, поэтому любой ценой я должен решить ее. Теперь моя проблема...
Предположим, у меня есть 4 tabbaritem
в tabbarController
и пункты "приборная панель","заказ","товар","клиент".
каждый элемент этих вкладок является соответствующим вызовом uiviewcontroller
,
вызов панели инструментов "DashboarViewController";
вызов вызова "orderViewController";
вызов продукта "ProductViewController";
клиент звонит "CustomerViewController";
Теперь я должен установить прокручиваемую строку меню на каждом контроллере uiview, и эта строка меню содержит 4 кнопки. Эти имена кнопок совпадают с именами элементов панели вкладок "панель управления","заказ","продукт","клиент".
Теперь, когда я нажимаю кнопку строки меню, соответствующий контроллер будет отображаться так же, как и для элементов панели вкладок. предположим, что я нажимаю на элемент панели вкладок "order", тогда он покажет "orderviewcontroller". когда я увижу этот контроллер представления, он также покажет мне эту строку меню в верхней части viewcontroller. Теперь, если я нажму кнопку "product" в этом "orderviewcontroller", то он будет возвращен мне "productViewcontroller".
это означает, что элемент вкладки и кнопка прокрутки меню будут работать одинаково.
до сих пор я сделал это, мой предыдущий пост изображения Как я могу сделать ту же кнопку в контроллере нескольких представлений?
Если кто-то знает, как это сделать, то, пожалуйста, объясните это шаг за шагом. Мне не нужно давать код от вас. Просто объясните это шаг за шагом, как я могу сделать это после прочтения моего предыдущего поста
Заранее спасибо.
1 ответ
Ха-ха-ха..... было так весело, когда я решил ее. Что бы я ни решил эту проблему по-другому, я не использовал контроллер кнопок прокрутки для контроллера просто, в каждом контроллере я сделал функцию, где кнопки внутри scrollview создать и по действию кнопки я просто изменить выбранный индекс контроллера панели вкладок.
в -(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];
}