Проблема приложения панели вкладок - PullRequest
0 голосов
/ 21 марта 2011

У меня есть оконное приложение, я добавляю MainMenuViewController .h и .m, а в AppDelegate.m я создал tabBarController

    MainMenuViewController *mmvc = [[MainMenuViewController alloc] init];
    FavesViewController *fvc = [[FavesViewController alloc] init];
    UITabBarController *tbc = [[UITabBarController alloc] init];
    tbc.viewControllers = [NSArray arrayWithObjects:mmvc, fvc, nil];
    [self.window addSubview:tbc.view];

В MainMenuViewController у меня есть кнопка, действие которой - перейти к другому View

-(IBAction) goToTableView {
    MyViewController *mtvc = [[MyViewController alloc] init];
    [self.view addSubview:mvc.view];
}

Но когда я нажимаю на вкладке Main MenuBar, он загружает MyTableView, а не MainMenuViewController. Я хочу, чтобы при нажатии элемента tabBar MainMenu он загружал MainMenuViewController, а не ViewController, который загружался из MainMenuViewController. Как это сделать? Спасибо.

Ответы [ 3 ]

1 голос
/ 21 марта 2011

Немного трудно понять, каковы ваши намерения с кодом ... Кажется, вы пытаетесь сделать следующее:

  1. Один из контроллеров представления, доступ к которым осуществляется через панель вкладок, являетсятабличное представление с отображением некоторых элементов меню.
  2. Нажатие на элемент в меню должно перейти к другому контроллеру представления.

Если вышеприведенное верно, то ваше решение будетустановите элемент панели вкладок для отображения экземпляра UINavigationController, свойство rootViewController которого указывает на экземпляр класса MainMenuViewController.

Затем в обработчике действий контроллера представления меню вы должны сделать что-то вроде этого:

MyViewController *mtvc = [[MyViewController alloc] init];
[self.navigationController pushViewController:mtvc animated:YES];
[mtvc release], mtvc = nil;

Основное правило заключается в использовании контроллера навигации, когда вы хотите пройти некоторыевид иерархии подробностей меню.

0 голосов
/ 28 марта 2012

для этого добавьте navigationController, затем напишите

[self.navigationContrller pushViewController: yourClassName animated: YES];

0 голосов
/ 21 марта 2011

Вы делаете это неправильно.Вы должны либо поместить MainMenuViewController в UINavigationController, а затем использовать [self.navigationController pushViewController:mtvc animated:YES], чтобы добавить его (и [self.navigationController popViewControllerAnimated:YES], если вам нужно программно удалить его), либо вы должны использовать [self presentModalViewController:mtvc animated:YES], чтобы добавить его, и [self dismissModalViewControllerAnimated:YES], чтобы удалить его.

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