ссылка на экземпляр объекта в другом классе в цели C - PullRequest
1 голос
/ 20 марта 2010

Я работаю в xcode над приложением ipod с целью C и у меня есть поле (navigationController) в одном из моих классов (rootViewController) Как я могу ссылаться на экземпляр NavigationController от экземпляра rootViewController из другого класса? Например, как мне это сделать, если я хочу сослаться на navigationController из класса FirstViewController.m?

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

Если я хочу сослаться на делегата приложения с помощью FirstViewController, я просто скажу:

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

[delegate.navigationController pushViewController:childController animated:YES];

как мне сделать это для класса rootViewController вместо MyAppDelegate?

Ответы [ 2 ]

0 голосов
/ 20 марта 2010

Исходя из вопроса, который вы задаете, кажется, что вы хотите вызывать методы для UINavigationController, который находится выше в стеке. Все UIViewController уже имеют свойство navigationController, которое является UINavigationController, который является предком этого ViewController в стеке.

Так что, если у вас был RootViewController, называемый root, он в какой-то момент сделал это

FirstViewController * first = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];
[self.navigationController pushViewController:first animated:YES];
[first release];

Тогда first.navigationController == root.navigationController

Так что внутри первого звонка [self navigationController] передаст вам тот же самый навигационный контроллер, на который сначала был вставлен файл.

0 голосов
/ 20 марта 2010

Один объект нуждается в ссылке на другой.Есть много способов сделать это.Например:

  • Создайте и тот же объект, и, поскольку он знает их обоих, расскажите им друг о друге
  • Создайте их в одном и том же наконечнике и соедините их обычными соединениями
  • Пусть владелец пера знает один из объектов о другом

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

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