iOS的随机数发生器到一个新的视图

我需要一些应用程序的帮助。 我需要为0到15之间的整数生成一个随机数字生成器,然后根据创build的数字推送到具有相应编号的视图。 这是我想要它的工作

按一个button – >随机数发生器给出一个0到15之间的数字 – >查看推到另一个已经分配了随机数发生器给出的数字的视图。

任何人都可以帮助我的代码? 谢谢

arc4random()是标准的Objective-C随机数生成器函数。 它会给你一个介于零和…之间的数字,好吧,超过十五! 您可以使用以下代码生成一个0到15之间的数字(0,1,2,… 15):

 NSInteger randomNumber = arc4random() % 16; 

然后你可以做一个开关或者一系列的if / else语句来推送一个不同的视图控制器:

 UIViewController *viewController = nil; switch (randomNumber) { case 0: viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; break; // etc ... } [self.navigationController pushViewController:viewController animated:YES]; 

或者更确切地说,在重读这个问题时,看起来如下:

 UIViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" viewController.number = randomNumber; 

你在MyViewController子类上有一个NSInteger属性。

你可以使用arc4random_uniform

 NSUInteger r = arc4random_uniform(16); 
  int randomIndex = arc4random() % 14 + 1 ; // gives no .between 1 to 15 .. switch (randomIndex) { case 0 : push view 1 ; break; case 1: ... } 

根据苹果,最好的方法是使用arc4random_uniform并通过上限:

 arc4random_uniform(16) 

从文档:

arc4random_uniform()将返回一个小于upper_bound的均匀分布的随机数。 arc4random_uniform()build议比arc4random()%upper_bound''这样的结构更好,因为当上限不是2的幂时,它避免了“模偏置”。

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/arc4random.3.html

我们可以使用C函数rand()来做到这一点:

这将生成1到30之间的整数。或者,您可以使用arc4random函数,如下所示:

 int i = arc4random() % 30; NSLog(@"Random Number: %i", i);