iPhone: пользовательская вкладка без ужасного меню «Дополнительно»
Итак, я хотел создать панель вкладок, которая имеет более 5 элементов, прокручивается и найденэта статья, Это легко сделать, создав подкласс UITabBarController и скрыв существующую панель вкладок:
for(UIView *view in self.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
view.hidden = YES;
break;
}
}
Затем я просто добавляю UIScrollView и добавляю туда несколько кнопок на основе коллекции элементов контроллера tabbar.
int i = 0;
for (UITabBarItem *item in self.tabBar.items)
{
UIView *tab = [[[UIView alloc] initWithFrame:CGRectMake(i*60, 0, 60, 60)] autorelease];
UIButton *btn = [[[UIButton alloc] initWithFrame:CGRectMake(7.5, 1, 45, 45)] autorelease];
[btn setImage:item.image forState:UIControlStateNormal];
btn.tag = i;
[btn addTarget:self action:@selector(didSelectTabrBarItem:) forControlEvents:UIControlEventTouchUpInside];
[tab addSubview:btn];
[self.scrollView addSubview:tab];
i++;
if(self.selectedViewController == nil)
[self setSelectedIndex:0];
}
Я переопределяю setSelectedindex / ViewController, так как мне нужно дополнительное рисование.
-(void)setSelectedViewController:(UIViewController *)selectedViewController
{
[super setSelectedViewController:selectedViewController];
[self startTimer];
}
-(void)setSelectedIndex:(NSUInteger)selectedIndex
{
[super setSelectedIndex:selectedIndex];
[self startTimer];
}
Проблема в том, что когда я нажимаю кнопку 5, 6 или 7, контроллер табуляции открывает окно «Больше». Как мне избавиться от этого и заставить последние три элемента действовать как другие? - Может ли это быть вызов супер?
Мое предположение было бы полностью убить UITabBarController и реализовать мою собственную пользовательскую панель вкладок. Но возможно ли отключить меню more и сделать так, чтобы UITabBarController выбирал пункты 5, 6 и 7 как обычно?