не могу получить доступ к UIView из UIViewController - PullRequest
0 голосов
/ 07 октября 2010

У меня проблема с доступом к методам просмотра из его UIViewController.Я начал программировать в xcode только 2 недели назад, и мне нужно изменить программу, созданную другим человеком.

UIView был перетаскиванием в конструкторе интерфейсов в .xib UIViewController и инициализируется методомinitWithFrame и drawRect.Это представление содержит NSTimer, который мне нужно остановить, когда пользователь нажимает кнопку закрытия на панели навигации.

Поэтому у меня есть IBAction в UIViewController, который активируется при нажатии кнопки закрытия.И этот метод должен запустить один из методов UIView, но он не работает.Xcode не обнаруживает ошибок или предупреждений, но код UIView никогда не запускается.Когда я запускаю приложение, все работает нормально, но это.

UIView.h:

@ interface Clock3D: UIView {
...
NSTimer * timer;
NSTimer * timerS;
}
...
@property (сохранение, неатомное) NSTimer * таймер;
@property (сохранение, неатомное) NSTimer * timerS;
...
- (void) doneTest;
@ end

UIView.m:

@ реализация Clock3D
@ синтезировать таймер, timerS,...
...
- (void) doneTest {

NSLog (@ "arret timerS");
[timerS invalidate];
NSLog (@ "arret timer");
[таймер недействителен];

}

UIViewController.h:

import "Clock3D.h"

@ class Clock3D;

@ interface Popup360: UIViewController {
...
Clock3D * clock3D;
}
...
@property (сохранить, неатомный) IBOutlet Clock3D * clock3D;...
- (IBAction) выполнено;

@ end

UIViewController.m:

@ реализация Popup360
@synthesize ..., clock3D;

- (IBAction) выполнено {
[clock3D doneTest];
[self dismissModalViewControllerAnimated: YES];
}

Итак, команда [clock3D doneTest]не работает (NSLog из doneTest никогда не появляется в журнале), но команда [self dismissModalViewControllerAnimated: YES];работает.

Спасибо за ваш ответ.

1 Ответ

0 голосов
/ 07 октября 2010

В IB проверьте тип свойства view из Popup360. Если она устанавливает UIView, измените его на Clock3D.

...