iPhone: ViewController как панель вкладок - PullRequest
0 голосов
/ 17 января 2010

Эй, ребята, мне нужна помощь с этим:

У меня есть два контроллера представления, скажем:

  • FirstViewController (первый) находится внутри контроллера viewview
  • SecondViewController (second)

Итак, в первом методе viewDidLoad у меня есть это:

SecondViewController *second = [[SecondViewController alloc] initWithNibName:...];

[self.addsubview:second.view];

Я сделал это, потому что я хочу создать свою собственную панель вкладок с моими пользовательскими кнопками и цветами.

У меня есть это, когда я нажимаю одну из кнопок моей собственной "панели вкладок" (secondviewcontroller)

ConfiguracionViewController *conf = [[ConfiguracionViewController alloc] initWithNibName:@"ConfiguracionView" bundle:nil];

[self.navigationController pushViewController:conf animated:YES];
[conf release];

но поскольку второй контроллер вида не выдвинут или модальный не представлен в первом контроллере вида, я не могу получить доступ к navigationController Я пробовал также с этим

[self.parentViewController.navigationController pushViewController:...];

Но это тоже не сработало.

Пожалуйста, помогите мне, мне нужно научиться делать это и извините за мой плохой английский.

С наилучшими пожеланиями,
Карлос Варгас

1 Ответ

1 голос
/ 17 января 2010

Во-первых, если вы не добавляете второй вид к первому, как это:

[self.view addSubview:second.view];

Свойство parentViewController не будет работать в этом случае, так как секунда не является частью иерархии навигации.

Вместо этого вы можете создать собственное свойство, которое ссылается на «родительский» контроллер представления:

SecondViewController *second = [[SecondViewController alloc] initWithNibName:...];

// set new property
second.parentVC = self;

[self.view addSubview:second.view];

В SecondViewController.h вам нужно объявить переменную экземпляра и свойство для parentVC, а в SecondViewController.m вам необходимо синтезировать это свойство.

Тогда вы сможете получить доступ к контроллеру навигации и выдвинуть контроллер представления из SecondViewController.m следующим образом:

[self.parentVC.navigationController pushViewController:...];
...