【问题标题】:How to Segue Randomly to ViewControllers in Swift? [closed]如何在 Swift 中随机选择 ViewController? [关闭]
【发布时间】:2014-11-23 05:19:16
【问题描述】:

对于我的 Swift 应用程序,我正在尝试让一个按钮指向 Main.storyboard 中的一个随机页面,但我不确定是否存在这样的方法。我有办法做到这一点吗?

【问题讨论】:

  • “页面”是什么意思。你的意思是“视图控制器”吗?例如,您是否有 5 个“视图控制器”并且您想随机选择其中一个?
  • 是的,我就是这个意思。

标签: ios xcode swift segue uistoryboard


【解决方案1】:

您可以通过以下方式选择随机的ViewController。在我的示例中,我选择使用 UINavigation Controller 并推送 segue,但是您可以像使用其他 segue 类型一样轻松地做到这一点。

我创建了这个故事板:

  1. 单一视图应用程序模板开始。

  2. 在情节提要中选择ViewController,然后从菜单中选择Editor->Embed In->Navigation Controller

  3. 我又添加了 3 个 ViewControllers,并在右侧的 Attributes Inspector 中将它们的背景设置为红色、绿色和蓝色。

  4. 下面我将讨论如何将segues从ViewController连接到红色、绿色和蓝色ViewControllers。

    这是我最终的故事板的概述:

完成这项工作的关键是从ViewController 顶部的ViewController 图标连接您的segue,而不是从UIButton 连接它。在弹出窗口中,我选择了push 作为segue 类型。

之后,单击 segue 箭头并给 segue 一个标识符。我将我的命名为“pushGreen”,因为它是我的绿色 ViewController 的 push segue。

我对红色 ViewController(segue:“pushRed”)和蓝色 ViewController(segue:“pushBlue”)重复了此操作。


我在我的第一个 ViewController 中添加了一个 UIButton,并将其命名为“Go”。这是按下时的IBAction

@IBAction func goPressed(sender: UIButton) {
    let segues = ["pushRed", "pushGreen", "pushBlue"]
    let index = Int(arc4random_uniform(UInt32(segues.count)))
    let segueName = segues[index]
    self.performSegueWithIdentifier(segueName, sender: self)
}

【讨论】:

  • 谢谢,非常感谢。我的应用是单页视图,那么这种设置是否适用?
  • 这用于在 Storyboard 中与 segue 连接的视图控制器中进行挑选。如果您以不同的方式创建视图控制器,则需要使用不同的方法。
猜你喜欢
  • 2014-08-31
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 2012-03-06
  • 2016-12-19
  • 1970-01-01
相关资源
最近更新 更多