だからここに私の問題があります。単純なものだと思いますが、なぜこれが機能しないのか理解できません。
別のクラス(ServiceController)から1つのクラス(RootViewController)のアウトレット(UITextField、UITableView、UIActivityIndicatorViewなど)にアクセスする必要があります。
私は現在これを持っています(必要なものだけを示しています):
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まで同じことを実行すると、正常に機能します。詳細/ルートコントローラーにそれが機能することを許可する他の宣言があるかどうかを確認しましたが、何も気づきませんでした。
PS:すべてが正常に呼び出され、「CALLED!」ログに記録されていますが、アウトレットに対して何をしても効果はありません。