0

しばらく 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からラベルにアクセス(テキスト、プロパティなどを変更)できるようにしたいと考えています。

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

0

インスタンス化UILabelしてテキストを与える必要があります。

wordView1 = [[UILabel alloc] init];
wordView.text = @"Some Text";
于 2013-06-02T02:15:19.653 に答える