Вызов метода на модалвью из контроллера поповера - PullRequest
0 голосов
/ 29 марта 2011

У меня есть приложение для iPad, которое состоит из контроллера splitview - из подробного обзора splitview я открываю modalviewcontroller (NearbyViewController), в котором есть кнопка, которая отображает всплывающее окно (RadiusViewController) со средством выбора.Это работает очень хорошо, но когда я выбираю значение в средстве выбора, я хочу вызвать метод на контроллере modalview, но я не могу понять, как это сделать?

Мой "NearbyViewController" импортирует "RadiusViewController.h "потому что я получаю доступ к определенным данным в" RadiusViewController ", но мне также нужно иметь возможность отправлять данные из RadiusViewController обратно в файл NearbyViewController, но если я импортирую файл NearbyViewController.h в RadiusView, то я получаю ошибки компиляции из-заим пытаются импортировать друг друга.

1 Ответ

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

Это распространенная проблема, и ее очень легко решить.Решение состоит в том, чтобы просто выполнить импорт в файлы .m.Если вам нужно, чтобы тип был известен в файле .h, вы просто используете предварительное объявление.

@class ClassName;

Это так просто.

РЕДАКТИРОВАТЬ: Aболее подробное объяснение:

Как правило, в файле .h методы и свойства класса не должны быть известны.Все, что вам нужно сделать, это сообщить компилятору, что существует класс с именем ClassName.На этом этапе компилятору не нужно больше ничего знать о классе.В файле .m вам нужно будет знать методы и свойства этого класса, иначе вы не сможете его использовать.Таким образом, в файле .m вы импортируете класс.

Просто для ясности:

// SomeClass.h
@class ClassName;

// SomeClass.m
#import "ClassName.h"

Это называется предварительным объявлением.Вы можете найти его в Google, чтобы узнать больше или прочитать вводную книгу по программированию.Это очень простая концепция программирования, и важно, чтобы вы ее изучили.

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