iPhone SDK: Как получить доступ к ViewController, вложенному в TabBar из MyAppDelegate? - PullRequest
1 голос
/ 18 января 2010

Я пытаюсь вызвать метод в моем FirstViewController, который является владельцем файла первого представления в TabBar.

Я пытался использовать эту строку кода, но просто получаю сообщение об ошибке "Метод '-showData' не найден":

[[tabBarController.viewControllers objectAtIndex:0] showData]

Но журнал говорит, что [tabBarController.viewControllers objectAtIndex: 0] мой FirstViewController:

Ответы [ 2 ]

4 голосов
/ 18 января 2010

Обычно вы должны объявить IBOutlet в делегате приложения, который указывает на контроллер представления, а затем с помощью Interface Builder подключить этот контроллер представления к выходу в делегате приложения. Все, что делает, это заставляет процесс загрузки пера настроить эту ссылку для вас при загрузке пера, чтобы он был удобен для делегата приложения.

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

Так что попробуйте:

MyViewControllerClass *controller = (MyViewControllerClass *)[tabBarController.viewControllers objectAtIndex:0];
[controller showData];
0 голосов
/ 18 января 2010

Вам не нужно разыграть свой FirstViewController?

[(FirstViewController *)[tabBarController.viewControllers objectAtIndex:0] showData]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...