2009-10-20 1 views
0

Я создал контроллер представления и связанный с ним вид с помощью конструктора интерфейса. Я пытаюсь вызвать функцию, которую я добавил в UIView из UIViewController. Я не уверен, как назвать эту функцию.Вызов функции в UIView UIViewController

Я попытался

[self.view myFunction] 

, но это только делает мой сбой программы.

+0

Вы можете сообщить об ошибке? Было бы полезно иметь более подробную информацию, чем «авария». –

+0

Yup, разместил его ниже ... – Adam

ответ

1

Вы объявили свои выходы IB и подключили к нему метод?

Ваш владелец изображения (более точно nib) должен быть установлен в ваш класс viewController.

Если вы не используете функции и методы вызова, вы не должны ничего называть. Вам просто не нужно.

Редактировать: исправления грамматики.

+0

Я знаю, как сделать точку IBOutlet в UIView, но как я могу указать выход на метод? Это то, что у меня есть в моем контролере. IBOutlet MyView * view1; Тогда для вызова метода у меня есть [view1 myMethod]; Но это ничего не значит. – Adam

+0

Забыл установить соединение в построителе интерфейса. Работает сейчас, спасибо! – Adam

0

Как инициализируется представление? Это настраиваемый тип вида? Если ваше представление инициализируется с помощью nib, убедитесь, что класс в типе вида является классом, в котором реализован метод.

+0

Вид - это то, что я написал пользовательский код в функцию drawRect и добавил к нему еще одну функцию myFunction. Он инициализируется иглой. Вы потеряли меня на последней части. – Adam

0

Возможно, это сбой, поскольку UIView не имеет метода myFunction. Чтобы добавить myFunction в объект UIView, вам необходимо подклассифицировать его.

Я предполагаю, что вы подклассифицировали свой UIView и назвали его чем-то вроде MyView. Вероятно, вы также подклассифицировали свой UIViewController и назвали его MyUIViewController. Поэтому у вас могут быть:

@interface MyViewController : UIViewController { 
    MyView *myView; 
.... 
} 

Теперь вы можете позвонить [self.myView myFunction];

Это один способ. Другой способ может быть:

[(MyView *)self.view myFunction]; 

Это зависит от того, является ли MyView первый взгляд в иерархии (или должны быть установлены в файлах СИБ).

+0

Я попробовал последнее предложение там, и он падает. Вот вывод на консоль: [HikerViewController] Обновить позицию нажимается 2009-10-19 20: 58: 47.082 UINavigationControllerWithToolbar [18268: 207] *** - [UIView drawGraph ::]: непризнанные селектор направлен например 0x3b0faa0 2009- 10-19 20: 58: 47.083 UINavigationControllerWithToolbar [18268: 207] *** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «*** - [UIView drawGraph ::]: непризнанный селектор, отправленный экземпляру 0x3b0faa0 ' 2009 -10-19 20:58:47.085 UINavigationControllerWithToolbar [18268: 207] – Adam

 Смежные вопросы

  • Нет связанных вопросов^_^