iOS 7: различные элементы навигации для контроллера панели вкладок

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

В моем приложении у меня есть AppDelegate. В моем AppDelegate есть небольшой фрагмент кода для настройки моего mainViewController:

- (void)setupOverlordViewController { MainViewController *rootVC = [[MainViewController alloc] initWithNibName:nil bundle:nil]; UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:rootVC]; self.window.rootViewController = navVC; } 

Я настраиваю свои вкладки в своем MainViewController:

 - (void)viewDidLoad { UIViewController *tabView1 = [[Tab1ViewController alloc] init]; UIViewController *tabView2 = [[Tab2ViewController alloc] init]; UIViewController *tabView3 = [[Tab3ViewController alloc] init]; NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init]; [tabViewControllers addObject:tabView1]; [tabViewControllers addObject:tabView2]; [tabViewControllers addObject:tabView3]; [self setViewControllers:tabViewControllers]; tabView1.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TabView1", nil) image:[UIImage imageNamed:@"tabView1.png"] tag:1]; tabView2.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TabView2", nil) image:[UIImage imageNamed:@"tabView2.png"] tag:2]; tabView3.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TabView3", nil) image:[UIImage imageNamed:@"tabView3.png"] tag:3]; } 

Каждый вид (tabView1, tabView2, tabView3) имеет собственный макет, который установлен в методе ViewDidLoad для представления. Когда я хотел бы добавить кнопки навигации на панели навигации, добавив их в метод ViewDidLoad, но добавлять кнопки не представляется возможным. Единственный способ добавить их прямо в мой MainViewController, но тогда я не могу настроить кнопки панели навигации на другой вкладке foreach.

Код добавления кнопок в мою панель навигации выглядит следующим образом:

 UIBarButtonItem *btnNewRecord = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(btnNewRecord)]; NSArray *rightItems = [NSArray arrayWithObjects:btnNewRecord, nil]; [self.navigationItem setRightBarButtonItems:rightItems]; 

Может ли кто-нибудь объяснить мне, что я делаю неправильно?

2 Solutions collect form web for “iOS 7: различные элементы навигации для контроллера панели вкладок”

Я создал пример для вас, используя xib-файлы. Я создал три контроллера просмотра и добавил их в навигационные контроллеры. После кода appdelegate :

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { FirstViewController *firstVC = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil]; UINavigationController *firstNavVC = [[UINavigationController alloc] initWithRootViewController: firstVC]; SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil]; UINavigationController *secondNavVC = [[UINavigationController alloc] initWithRootViewController: secondVC]; ThirdViewController *thirdVC = [[ThirdViewController alloc] initWithNibName:@"ThirdView" bundle:nil]; UINavigationController *thirdNavVC = [[UINavigationController alloc] initWithRootViewController: thirdVC]; NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init]; [tabViewControllers addObject:firstNavVC]; [tabViewControllers addObject:secondNavVC]; [tabViewControllers addObject:thirdNavVC]; firstNavVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"First", nil) image:nil tag:1]; secondNavVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Second", nil) image:nil tag:2]; thirdNavVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Third", nil) image:nil tag:3]; UITabBarController *tabbarController = [[UITabBarController alloc] init]; tabbarController.viewControllers = tabViewControllers; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.rootViewController = tabbarController; [self.window makeKeyAndVisible]; return YES; } 

Ниже приведен вывод:

введите описание изображения здесьвведите описание изображения здесьвведите описание изображения здесь

Вы можете скачать пример кода здесь

вам нужен отдельный контроллер навигации для каждого контроллера просмотра панели вкладок, а затем вы можете добавить UIBarButtonItem на каждый контроллер навигации.

  • Добавить кнопку рядом с кнопкой «Назад»
  • navigationController.navigationItem vs navigationItem
  • Навигационная панель навигационной панели ios сдвигается при нажатии нового регулятора вида
  • Размер кнопки кнопки iOS 5
  • UIBarButtonItem не отображается
  • Уменьшите пробел между элементами панели бара в UINavigationBar
  • Кнопка «Назад» отключена iOS
  • Добавление нескольких настраиваемых кнопок на пользовательскую панель навигации
  • Как программно удалить UINavigationbarbar?
  • Как изменить tintColor UIBarButtonItem?
  • Добавить UIBarButtonItem в панель навигации в Xamarin IOS
  • Interesting Posts

    Сеанс AVCapture для захвата изображения SWIFT

    Crashlytics не отправляет отчет Crash из iPhone

    UITableView установлен на статические ячейки. Можно ли программно скрыть некоторые из ячеек?

    Почему в консоли Xcode возникает ошибка «рукопожатия»?

    Преобразование UIView: fromView: возврат большего прямоугольника?

    Добавление данных векторной карты в приложение GPS iOS. Реализация векторной графики в реальном времени

    Как правильно создать UIButton, который изменяет размер текста в Xcode 4?

    UICollectionView странный сбой в iOS 7

    Представление контроллера вида без изменения цвета строки состояния, например, UIAlertController

    Портретная маска отображается правильно только после изменения ориентации на Пейзаж и обратно в портрет

    Многострочный UIButton и автозапуск

    Xcode 5.1 и ошибка компиляции для архитектуры x86_64

    Как добавить карту в Apple Pay с помощью PKAddPaymentPassViewController?

    Swift – Как создать представление таблицы на основе данных, загруженных асинхронно?

    Self-размер ячейки с несколькими ярлыками не показывает многострочную метку

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.