Почему это работает? Случайное создание контроллеров представления, вид которых даже не виден, не является решением. Вы можете также сохранить ссылку на ВК в виде:
@imlementation ViewController
- (id) init
{
// ...
aView = [[CustomView alloc] init];
aView.viewController = self;
// ...
}
@end
@interface CustomView
@property (assign) ViewController *viewController;
@end
Или вы можете искать цепочку респондента во время выполнения:
UIResponder *next = [view nextResponder];
while (next)
{
if ([next isKindOfClass:[ViewController class]])
{
break;
}
next = [next nextResponder];
}
И теперь «следующий» будет содержать контроллер представления (или ноль, если он не может быть найден).