iPhone - добавление кнопки на панель навигации, созданной, когда пользователь выбирает вкладку в moreNavigationController - PullRequest
0 голосов
/ 24 июля 2010

Моя панель вкладок имеет десять вкладок. Шесть из них, следовательно, помещены во вкладку «Еще». Некоторые из них не имеют UINavigationControllers. Т.е. вкладка управляется подклассом UIViewController, который не является контроллером навигации.

Когда пользователь выбирает один из них, появляется соответствующий контроллер представления с UINavigationBar вверху.

Я хочу добавить кнопку на эту панель навигации. Как я могу это сделать?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 июля 2010

Что ж, если вы хотите сделать это программно, то я бы предложил заменить каждый из ваших viewControllers в вашем UITabBar на UINavigationControllers, в которых находятся соответствующие контроллеры представления.

Итак, ваш старый код выглядит примерно так:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  UITabBarController *tbc = [[[UITabBarController alloc]init]autorelease];
  [window addSubview:tbc.view];
  UIViewController *mapVC = [[[UIViewController alloc] init]autorelease];
  NSArray *tabViewControllerArray = [NSArray arrayWithObjects:self.mapVC, nil];
  tbc.viewControllers = tabViewControllerArray;
}

Новый код должен быть:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  UITabBarController *tbc = [[[UITabBarController alloc]init]autorelease];
  [window addSubview:tbc.view];
  UIViewController *mapVC = [[[UIViewController alloc] init]autorelease];
  // add the viewController to a UINavigationController
  UINavigationController *mapNav = [[[UINavigationController alloc] initWithRootViewController:mapVC]autorelease];
  // put the nav controller in the array instead
  NSArray *tabViewControllerArray = [NSArray arrayWithObjects:mapNav, nil];
  tbc.viewControllers = tabViewControllerArray;

  // this code adds a right button to the mapBav navigationBar
  // this uses a custom view, but you could use a standard UIBarButtonItem too 
  NSArray *items = [NSArray arrayWithObjects: [UIImage imageNamed:@"flag-icon.png"], nil];
  UISegmentedControl *tableControl = [[[UISegmentedControl alloc] initWithItems:items]autorelease];
  tableControl.segmentedControlStyle = UISegmentedControlStyleBar;
  UIBarButtonItem *segmentBarItem = [[[UIBarButtonItem alloc] initWithCustomView:tableControl] autorelease];
  self.navigationItem.rightBarButtonItem = segmentBarItem;
}
0 голосов
/ 24 июля 2010

Есть два способа сделать это.

  1. Просто используйте UINavigationController для каждой вкладки, с вашим контроллером представления в ней. Но, похоже, вы не хотите этого делать, поэтому:

  2. Поместите UINavigationBar в Интерфейсный Разработчик. навигационная панель http://cl.ly/395fb8c0a9e9df781897/content
    Затем вы можете перетащить в UIBarButtonItems и настроить их по своему вкусу, в том числе в IB. кнопки http://cl.ly/7501d3e8e5d57dac5e00/content

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...