Так вот моя проблема. Я предполагаю, что это просто, но я просто не могу понять, почему это не работает.
Мне нужен доступ к розеткам (UITextField, UITableView, UIActivityIndicatorView и т. Д.) В одном классе (RootViewController) из другого класса (ServiceController).
У меня есть это сейчас (показывает только то, что нужно):
RootViewController.h
@interface RootViewController : UIViewController{
UITextField *textField;
}
@property (nonatomic, retain) IBOutlet UITextField *textField;
- (void)startService;
@end
RootViewController.m
@implementation RootViewController
@synthesize textField;
- (void)startService{
ServiceController *service = [[ServiceController alloc] init];
[service start];
[service release];
}
@end
ServiceController.h
@class RootViewController;
@interface ServiceController : NSObject{
}
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
- (void)start;
@end
ServiceController.m
#import "RootViewController.h"
@implementation ServiceController
@synthesize rootViewController;
- (void)start{
[((RootViewController*)rootViewController).textField setText:@"HELLO !"];
NSLog(@"CALLED !");
}
@end
Я не вижу, почему это не работает, я использую тот же метод, чтобы сделать то же самое от RootViewController к DetailViewController, и он работает нормально. Я проверил, есть ли какие-либо другие объявления в контроллерах detail / root, чтобы это работало, но я ничего не заметил.
PS: все вызывается успешно и "ВЫЗОВ!" регистрируется, все, что я делаю с розеткой, не имеет никакого эффекта.