iOS - 如何在 Swift 的不同视图控制器中使用小视图
Posted
技术标签:
【中文标题】iOS - 如何在 Swift 的不同视图控制器中使用小视图【英文标题】:iOS - How to use a small view in different view controllers in Swift 【发布时间】:2016-07-25 05:51:54 【问题描述】:我有一个进度条(带有自己的控制器)。该栏应该根据可见的视图显示在不同的视图中。由于进度相同,如果可能的话,我不想在许多视图中创建许多进度条,而是想在所有这些视图中使用相同的实例。同样,当我需要更改进度条的任何属性时,它也会被普遍反映,这是必需的。
请建议我如何使用这种常见的观点。而且,如果我的策略是错误的,那么对于这种情况,更好的设计是什么。
【问题讨论】:
创建一个声明进度条的类,并将进度条添加到superview中。因此,当视图控制器发生更改时,进度条保持在同一位置 我不知道为什么这个问题被否决了?谁能解释一下? 【参考方案1】:1) 那么你有 2 个选项。您可以声明一个新的 Class ViewBox
(或任何名称),然后在您的代码中使用它
第一个视图控制器
var box:ViewBox = ViewBox()
当您转场或转换到下一个屏幕时,您可以有一个预定义的变量var box:ViewBox!
。然后说当你按下一个按钮时,这个按钮有一个函数叫做transition.
//Now setup the transition inside the Storyboard and name the identifier "toThirdViewController"
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject?)
if(segue.identifier == "toThirdViewController")
var vc = segue.destinationViewController as! `nextViewController` //The class of your next viewcontroller goes here
vc.box = self.box
//Since The SecondViewController doesn't need ViewBox, we don't need it there.
在哪里
nextViewController:UIViewController
var box:ViewBox!
或者你可以做一个更简单的方法,那就是查找UIPageViewController
:)
【讨论】:
当视图来自不同的storyboard时,没有任何直接重定向,我该如何处理?例如,对于转换序列,viewA -> viewB -> viewC,我只需要在 viewA 和 viewC 中显示 viewBox。 您能再澄清一下吗? “当视图来自不同的故事板时,没有直接重定向” 可以说,我在 viewA 中显示 viewBox,然后我转到不需要显示 viewBox 的 viewB。然后我再次转到需要再次显示它的 viewC。其他情况可能是我退出 viewA,然后从父视图转到 viewC。我该如何处理这些情况。 Storyboard 中是否发生了视图之间的这种转换? 是的,过渡可以在单个故事板或不同的@impression7vx 中以上是关于iOS - 如何在 Swift 的不同视图控制器中使用小视图的主要内容,如果未能解决你的问题,请参考以下文章
在一个视图控制器中使用不同的按钮上传多个图像(iOS、Xcode 9、Swift 4)