【问题标题】:Define a storyboard that could switch between views at runtime定义一个可以在运行时在视图之间切换的故事板
【发布时间】:2018-11-29 13:44:16
【问题描述】:

我想实现一个简单的用户界面,它有一个开关按钮,当打开开关时,应用程序显示一个视图,当关闭时显示另一个视图。 (底部还有一个主按钮,无论显示哪个UIView,都应该始终可见)

我正在考虑情节提要,我使用一个UIVIewController,然后定义两个UIView 组件,每个组件代表一个视图。

所以,简而言之,我想在运行时在 switch 按钮Main 按钮 之间显示不同的 UIView。

但是我卡住了,我不确定如何使用上面计划的解决方案默认显示UIView 之一。 (可能我不确定这是否是做我想要实现的目标的正确方法。)有人可以指导我吗?

【问题讨论】:

  • 这两个视图包含什么?我认为您可以在视图控制器本身中创建视图并根据开关状态隐藏/显示。
  • @hardik parmar,每个 UIView 都包含不同 UI 元素的不同布局。谢谢,但是如果我按照您的建议进行操作,那么视图控制器将一团糟。我会尽量让它更有条理,这就是为什么我分成两个 UIViews
  • 您是否尝试过使用容器视图?您可以将它们从库中拖到情节提要中,然后像普通的UIViewUISwitch 等一样为它们创建出口——这样它们就可以很容易地隐藏起来。它们通过 segue 连接到另一个视图控制器,并且应该显示该视图控制器的内容。
  • 已经有这种 UI 的解决方案,在您的案例中,UITabBarController 带有 2 个选项卡。只需要修改TabBar的设计即可。developer.apple.com/documentation/uikit/uitabbarcontroller
  • @LoVo 但我不需要标签。

标签: ios swift uiview uiviewcontroller xcode-storyboard


【解决方案1】:

在情节提要中,您可以添加两个容器视图。这些基本上是作为子级添加的 UIViewController。根据开关,您可以使用 isHidden 参数之一或另一个隐藏/显示。

【讨论】:

    【解决方案2】:

    您可以使用 2 种不同的方法:

    1. 交换视图:这可以通过使用UIView 动画轻松完成,例如method transition(from:to:duration:options:completion:)
    2. 使用 Wesley 已经说过的满足视图控制器 API
      虽然第一个可以解决问题,但如果您的视图具有完全不同的行为和业务逻辑,则最好使用 2 个不同的视图控制器并使用容器视图。更多信息请点击herehere

    【讨论】:

      猜你喜欢
      • 2013-05-11
      • 2014-10-17
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      相关资源
      最近更新 更多