2013-03-27 4 views
0

Я разрабатываю приложение для ios с панелью вкладок. У меня более 5 кнопок на панели, поэтому на iphone у меня есть кнопка больше. Теперь предположим, что у меня есть эти кнопки: Button1 Button2 Button3 Button4 Больше (и внутри More) Button5 Button6. Если я нажму Больше, а затем Button5, то перейдем к представлению относительно Button5. Затем я нажимаю Button2 (это не в разделе «Дополнительно»), и я смотрю по отношению к Button2. Пока все хорошо. Теперь, если я нажму Больше, я перейду не к вкладке «Дополнительно», а обратно к представлению относительно Button5. Как сделать кнопку больше, чтобы перейти к более большому виду?Как сделать кнопку больше, чтобы смотреть больше?

ответ

0

Я использовал этот код в моем приложении delegate.m решить проблему

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    UITabBarController* tabBarController2 = (UITabBarController*)self.window.rootViewController; 
    if (tabBarController2.selectedIndex < 4) { 
     [tabBarController2.moreNavigationController popViewControllerAnimated:NO]; 
    } 
} 
+0

Есть ли способ показать все шесть кнопок на панели вкладок вместо того, чтобы показывать еще кнопку, содержащую кнопку 5 и кнопку 6 plz, предлагают – UserDeviOS

0

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

Для Ex:

Изначально у вас есть: Button1Button2Button3NextButton4

После нажатия на кнопку Далее: PrevButton3Button4Button5Button6

+0

прохладный. Думаю, я не настолько разбираюсь в объективе c. ^^ ' –

1

Вам не нужно добавлять больше кнопки. Просто установите контроллеры просмотра в UITabBarController

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated 

, и он будет автоматически создавать больше кнопки, если у вас есть более 5 контроллеров просмотра! то есть отсчет NSArray больше 5.

+0

да, я знаю. Проблема заключается в том, как сделать клик на кнопке всегда в окне «Дополнительно», показывающем ссылку на кнопку после пятого, вместо того, чтобы показывать последний вид, выбранный в более подробном виде. ^^ –

+0

В панели вкладок имеется ограниченное пространство для отображения пользовательских Предметы. Если вы добавите шесть или более пользовательских контроллеров представлений в контроллер панели вкладок, контроллер панели вкладок отобразит только первые четыре элемента плюс стандартный элемент More на панели вкладок. При нажатии кнопки «Дополнительно» появляется стандартный интерфейс для выбора остальных элементов. Интерфейс для стандартного дополнительного элемента включает в себя кнопку «Редактировать», которая позволяет пользователю перенастроить панель вкладок. –

+0

Я на самом деле не понимаю, что именно вы хотите! может разработать больше? –

0
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    UIViewController *viewController1 = [[UIViewController alloc] init]; 
    UIViewController *viewController2 = [[UIViewController alloc] init]; 
    UIViewController *viewController3 = [[UIViewController alloc] init]; 
    UIViewController *viewController4 = [[UIViewController alloc] init]; 
    UIViewController *viewController5 = [[UIViewController alloc] init]; 
    UIViewController *viewController6 = [[UIViewController alloc] init]; 
    UIViewController *viewController7 = [[UIViewController alloc] init]; 
    UIViewController *viewController8 = [[UIViewController alloc] init]; 
    UIViewController *viewController9 = [[UIViewController alloc] init]; 

    [viewController1.view setBackgroundColor:[UIColor whiteColor]]; 
    [viewController2.view setBackgroundColor:[UIColor redColor]]; 
    [viewController3.view setBackgroundColor:[UIColor greenColor]]; 
    [viewController4.view setBackgroundColor:[UIColor grayColor]]; 
    [viewController5.view setBackgroundColor:[UIColor blueColor]]; 
    [viewController6.view setBackgroundColor:[UIColor yellowColor]]; 
    [viewController7.view setBackgroundColor:[UIColor brownColor]]; 
    [viewController8.view setBackgroundColor:[UIColor magentaColor]]; 
    [viewController9.view setBackgroundColor:[UIColor purpleColor]]; 

    [viewController1 setTitle:@"one"]; 
    [viewController2 setTitle:@"two"]; 
    [viewController3 setTitle:@"three"]; 
    [viewController4 setTitle:@"four"]; 
    [viewController5 setTitle:@"five"]; 
    [viewController6 setTitle:@"six"]; 
    [viewController7 setTitle:@"seven"]; 
    [viewController8 setTitle:@"eight"]; 
    [viewController9 setTitle:@"nine"]; 

    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3, viewController4, viewController5, viewController6, viewController7, viewController8, viewController9]; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

Я добавил образец AppDelegate код, который я попробовал и его работая в полном порядке для меня. Дайте мне знать, в чем проблема, связанная с этим.

+0

, я нашел решение более простым, но это потрясающе! Большое вам спасибо! Для новичка, подобного мне, это чистое золото! –

Смежные вопросы