しばらく XCode プログラミングから離れていましたが、今は最初からやり直して、最初からやり直したような気がします。私を夢中にさせている簡単な例があります。Word1View という UIView のサブクラスを作成し、ストーリーボードに追加しました。メイン ビュー コントローラーでプロパティとして宣言し、メイン ビューに IBOutlet としてアタッチしました。Core Graphics を使用してこのビューに問題なく描画できます (長方形、線など)。「.h」ファイルのコードは次のとおりです。プロパティは「.m」で正しく合成されます
#import <UIKit/UIKit.h>
#import "Word1View.h"
@interface Board3ViewController : UIViewController
{
Word1View *word1View;
}
@property (nonatomic, strong) IBOutlet Word1View *word1View;
@end
さて、ここで問題です。Word1View.h に UILabel を追加しました (後で UIImageFiles を追加します)。
#import <UIKit/UIKit.h>
@interface Word1View : UIView
{
UILabel *testLabel;
}
@property (nonatomic, retain) UILabel *testLabel;
@end
このプロパティも正しく合成されます。UILabel がメイン ストーリーボードのビューに追加されました。これを IBOutlet にしようとしましたが、サブビューの一部である限り接続できませんでした。メインのView ControllerでUILabelにアクセスしようとしました:
[super viewDidLoad];
[self.view addSubview:word1View];
NSLog(@"Label text is: %@", word1View.testLabel.text);
Board3[14520:c07] Label text is: (null)
メインのView Controllerからラベルにアクセス(テキスト、プロパティなどを変更)できるようにしたいと考えています。
どんな助けでも大歓迎です。ありがとうございました。