Передавать значения между представлениями - PullRequest
0 голосов
/ 28 октября 2008

У меня есть MainViewController, вызывающий WebViewController (из примера приложения UICatalog) В WebViewController я делаю некоторую функцию setValue () {...} для установки некоторого значения, передаваемого в качестве параметра переменной (значение NSString *) из WebViewController.h, но когда я пытаюсь из MainViewController что-то вроде WebViewController targetViewController ... targetViewController.setValue (значение), он говорит: " ошибка: запрос на член 'setValue' в чем-то не s структура или объединение " ...

Ответы [ 3 ]

1 голос
/ 28 октября 2008

Я верю, что

targetViewController.value = whatever;

будет работать, только если у вас уже объявлен @property; если нет, вам нужно использовать полный синтаксис вызова метода:

[targetViewController setValue: whatever];

В остальном, Кендалл прав насчет использования сеттеров и @ synthesize.

Также ваш синтаксис написан с использованием процедурного C

targetViewController.setValue(value);

который определенно не будет работать.

1 голос
/ 28 октября 2008

Если у вас есть свойство с именем «value», и вы используете @sythesize, чтобы создать для вас метод, и в этом случае вы вызываете с помощью этого «.» Обозначения:

targetViewController.value = whatever;

Или вы можете напрямую вызывать сеттер независимо от вас или @synthesize, пишущего метод:

[targetViewController setValue:whatever];

Синтаксис свойства (class.property = что угодно) на самом деле является просто ярлыком вызова метода "setValue:", а взамен механизмы свойств @property и @synthesize просто пишут полезный фрагмент кода для вас.

Edit: я уже говорил, если вы только что написали метод "setValue:", вы могли бы вызвать его, используя нотацию "class.value = newValue", но это было неверно - вы должны определить @property для использования ". " нотации.

0 голосов
/ 30 октября 2008

Вам также необходимо #import вашего файла targetViewController.h.

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