0

RedButtonViewController と TweetViewController の 2 つの ViewController があります。RedButtonViewController は Textlabels で乱数を生成し、その数値またはラベルを TweetViewController で使用したいと考えています。どうすればこれを作ることができますか?

ご協力いただきありがとうございます!

私の TweetViewController は、RedButtonViewController の次のコードで開かれます。

- (IBAction)TweetViewController:(id)sender {
    TweetViewController *Tweet = [[TweetViewController alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:Tweet animated:YES];
}

乱数を生成する方法の例を次に示します。

- (IBAction)pushRedButton:(UIButton *)sender { 

    int ZahlDerToten;
    ZahlDerToten = arc4random() % 1000000;  

    outputLabel.text = [NSString stringWithFormat:@"You killed %d people.", ZahlDerToten];  
4

1 に答える 1

1

TweetViewController にプロパティを作成し、表示する前に設定します。

- (IBAction)TweetViewController:(id)sender {
    // Note: don't put leading capitals on a local variable
    TweetViewController *tweet = [[TweetViewController alloc] initWithNibName:nil bundle:nil];
    tweet.randomNumber = [self generateRandomNumber];
    [self presentModalViewController:tweet animated:YES];
    // Note: You were leaking the view controller
    [tweet release];
}

別の解決策 (および私が通常この種のことを行う方法) は、-initWithNumber:(おそらく「数値」よりも少し説明的なもの) と呼ばれる新しい初期化子を作成し、次のように呼び出すことです。

- (IBAction)TweetViewController:(id)sender {
    TweetViewController *tweet = [[TweetViewController alloc] initWithNumber:[self generateRandomNumber]];
    [self presentModalViewController:tweet animated:YES];
    [tweet release];
}

-initWithNumber次に、次のようになります。

- (TweetViewController *)initWithNumber:(NSInteger)number {
    self = [super initWithNibName:nil bundle:nil];
    if (self != nil) {
        self.number = number;
    }
    return self;
}
于 2009-12-29T04:13:41.987 に答える