从一个ViewController中取一个随机数并在第二个ViewController中使用它 - Update

问题描述:

我有两个ViewController:RedButtonViewController和TweetViewController。 RedButtonViewController在文本标签中生成随机数字,我想用TweetViewController来使用数字或标签。我怎样才能做到这一点?从一个ViewController中取一个随机数并在第二个ViewController中使用它 - Update

感谢您的帮助!

我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]; 

在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; 
} 
+0

嗨,谢谢你的回答。我试过你的第二种方法,并且总是在我使用initWithNumber的时候,他在这行中说:self.number = outputlabel;请问会员'number'是什么结构或工会唠叨 也许问题是,我不知道我必须在您的代码中取代什么和不... 我把我如何生成随机在问题上面的数字。 – Flocked 2009-12-29 04:40:18

+0

在这段代码中,我假设会有一个名为“number”的属性,就像一个例子;我假设TweetViewController有一些持有这个数字的伊娃。你几乎肯定不应该通过标签本身。不要使用标签来存储数据。将数据存储在ivars中;从这些ivars设置标签的值。这是Cocoa依赖的Model-View-Controller模式的一个关键特性。所以如果你把上面的“数字”改成了UILabel,不要这样做。在你的例子中它应该是一个NSUInteger,并且应该有一个像countOfKilledPeople这样的属性。 – 2009-12-29 05:10:32