#import <UIKit/UIKit.h>
@interface ImageTouched : UIImageView
@property (nonatomic, strong) NSString *pew;
@end
#import "ImageTouched.h"
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Image Touched");
self.pew = @"pewpewpewew";
}
#import "ImageTouched.h"
- (void)viewDidLoad
{
[super viewDidLoad];
ImageTouched *instance = [[ImageTouched alloc] init];
NSLog(@"Pew value is %@", instance.pew);
}
log:Pew value is (null)
Image Touched
Думаю проблема в том, что переменная 'pew' инициализируется после нажатия на картинку. В этот момент myViewController уже загружен. Нужен метод, который обрабатывал бы события после загрузки контролера.
#import "ImageTouched.h"
-(void)awakeFromNib
{
self.pew = @"pewpewpewew";
}
Думаю проблема в том, что переменная 'pew' инициализируется после нажатия на картинку. В этот момент myViewController уже загружен. Нужен метод, который обрабатывал бы события после загрузки контролера.
- (void)viewDidLoad {
[super viewDidLoad];
ImageTouched *instance = [[ImageTouched alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[self.view addSubview:instance];
// Подписываемся на уведомление
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imageDidTouch:) name:@"ImageTouchedImageDidTouch" object:nil];
}
// Метод, который обрабатывает уведомление
- (void)imageDidTouch:(NSNotification *)notification {
if ([notification.object isKindOfClass:[ImageTouched Class]])
NSLog(@"Pew value is %@", ((ImageTouched *)notification.object).pew);
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Image Touched");
self.pew = @"pewpewpewew";
// Отправить уведомление, отправляя самого себя в качестве параметра object
[[NSNotificationCenter defaultCenter] postNotificationName:@"ImageTouchedImageDidTouch" object:self];
}