0

数年前に書かれた Objective-C の本を読んでいて、インターフェイス ビルダーを使用して UI をリンクおよび設計する方法を説明しているセクションにたどり着きました。これに相当するのが「絵コンテ」のようです。私は IB の指示に従い、それらをストーリー ボードに翻訳しました。ただし、インスタンス変数 UILabel が画面に表示されません。すべてのボタンとラベルは、プログラムではなく、ストーリーボードで作成されました。どんな助けでも大歓迎です!

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {

   IBOutlet UILabel *randNumber; //instance variable

}

-(IBAction)seed:(id)sender;
-(IBAction)generate:(id)sender;

@property (retain,nonatomic) UILabel *randNumber; //getter and setter methods

@end

ViewController.m

    @interface ViewController ()

@end

@implementation ViewController
@synthesize randNumber;

- (void)viewDidLoad
{
    [super viewDidLoad];

}

-(IBAction)seed:(id)sender
{
    srandom(time(NULL));
    [randNumber setText:@"Generator seeded."];

}

-(IBAction)generate:(id)sender
{
    //generate a random number between 0 and 100 inclusive
    int generated;
    generated = (random()%101);
    [randNumber setText:[NSString stringWithFormat:@"%i",generated]];
}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end
4

2 に答える 2

1

推測して、UILabel が画面に正しく表示されると仮定しますが、setText: メソッドを呼び出すたびに行った変更は表示されません。

この場合、IBOutlet (および場合によっては IBActions) が正しく配線されていないことを意味します。

まず、IB で UIViewController のクラスを「ViewController」に設定する必要があります。

カスタム クラスを ViewController に設定する

次に、ボタンを IBActions に接続し、ラベルを IBOutlet に接続して選択し、Ctrl キーを押しながら View Controller にドラッグします。

Ctrl キーを押しながら View Controller にドラッグします

次に、適格な IBOutlets と IBActions のリストを含むポップアップが表示されます (ドラッグ元の場所によって異なります)。正しいものを選択するだけです。

于 2013-05-08T06:45:57.327 に答える