Я задавал этот вопрос ранее со слишком большим количеством кода.
ViewController инициализирует цепочку UIView, Controller >> View >> SubView, в ViewController.После инициализации SubView ViewController устанавливается в качестве его делегата:
aSubView.delegate = self;
NSLog(@"$@",aSubview.delegate),
возвращает ViewController, поэтому я знаю, что он установлен.
В SubView, NSLog(@"$@",self.delegate),
возвращаетслучайное дерьмо, такое как hr.lproj или путь к файлу к платформе Foundation.
Сбой при попытке реализовать любой из методов делегатов, поскольку делегат не ссылается на ViewController, а вместо этого на случайность.
Вот как выглядит файл SubView.h:
#import "TestDelegate.h"
@interface TestSubView : UIView {
id<TestDelegate> delegate;
}
@property (assign) id<TestDelegate> delegate;
РЕДАКТИРОВАТЬ: ViewController инициализируется в делегате приложения следующим образом:
ViewController *controller = [[ViewController alloc] init];
[window addSubview:controller.view];
[controller release];
Единственное, что я могудобавлен в делегат приложения, по умолчанию импорт заголовка ViewController